Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> httpComponentsUtil [in template "20100#20136#90037691" at line 279, column 85]
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign isSecure = httpComponentsUtil... [in template "20100#20136#90037691" at line 279, column 65]
----
1<!--
2Group: OpenData
3Template Name: Detalle de dataset
4Template Description: Detalle de dataset
5Template Key: DETALLE_DATASET
6Structure Key:
7Cacheable: true
8Small Image: false
9Class Name: es.aragon.opendata.ws_tools.ws_connection.model.WSConnectionResponse
10-->
11
12<#assign freemarkerUtilities = serviceLocator.findService("es.aragon.base.freemarker_utilities.api.FreemarkerUtilities")/>
13
14
15<div class="opendata__dataset-detail">
16 <#if status == 200 && data?? && data!='null'>
17 <h2>
18 <span class="container readSpeakerOrigin">${data.result.title}</span>
19 </h2>
20 <div class="container">
21 <div class="row flex-column flex-md-row">
22 <section class="col-xs-12 col-md-6 col-lg-8">
23 <section class=" opendata__dataset-detail__body u-padding-bottom-4 u-padding-bottom-sm-6 readSpeakerOrigin">
24
25 <h2><span>${languageUtil.get(locale, "informacion-del-conjunto-de-datos")} </span><a href="https://www.facebook.com/sharer.php?u=${themeDisplay.getPortalURL() + themeDisplay.getURLCurrent()}"><i class="fa fa-facebook-square pull-right" aria-hidden="true"></i><span class="oculto"><@liferay.language key="facebook" /></span></a> <a href="https://twitter.com/share?url=${themeDisplay.getPortalURL() + themeDisplay.getURLCurrent()}"><i class="fa fa-twitter-square pull-right" aria-hidden="true"></i><span class="oculto"><@liferay.language key="twitter" /></span></a></h2>
26
27 <#if data.result.title?has_content>
28 <h3>${languageUtil.get(locale, "title")}</h3>
29 <p>${data.result.title}</p>
30 </#if>
31
32 <#if data.result.title?has_content>
33 <h3>${languageUtil.get(locale, "description")}</h3>
34 <p>${data.result.notes}</p>
35 </#if>
36
37 <#if data.result.groups.length() !=0>
38 <h3>${languageUtil.get(locale, "category")}</h3>
39 <p><a href="/datos/catalogo/temas/${data.result.groups.get(0).name}">${data.result.groups.get(0).title}</a></p>
40 </#if>
41
42 <#assign tags = data.result.tags/>
43 <#if tags.length() !=0>
44 <h3>${languageUtil.get(locale, "etiquetas-y-palabras-clave")}: </h3>
45 <ul>
46 <#list 0 ..< tags.length() as i>
47 <li class="btn-border"><a target="_self" href="/datos/catalogo/etiquetas?etq=${tags.get(i).name}">${tags.get(i).name}</a></li>
48 </#list>
49 </ul>
50 </#if>
51
52 <#if data.result.organization?has_content>
53 <h3>${languageUtil.get(locale, "organizacion-responsable-de-la-publicacion")}:</h3>
54 <p><a href="/datos/catalogo/publicadores/${data.result.organization.name}">${data.result.organization.title}</a></p>
55 </#if>
56 <#assign to = ""/>
57 <#assign from = ""/>
58 <#assign frequency = ""/>
59 <#assign uriAragopedia =""/>
60 <#assign typeAragopedia=""/>
61 <#assign dataDictionary=""/>
62 <#assign dataDictionaryURL=[]/>
63 <#assign granularity=""/>
64 <#assign extraDataQuality=""/>
65 <#assign extraDataQualityURL=[]/>
66
67 <#assign IAEST_TemaEstadistico=""/>
68 <#assign IAEST_UnidadEstadistica=""/>
69 <#assign IAEST_PoblacionEstadistica=""/>
70 <#assign IAEST_UnidadDeMedida=""/>
71 <#assign IAEST_LegislacionUE=""/>
72 <#assign IAEST_PeriodoBase=""/>
73 <#assign IAEST_TipoOperacion=""/>
74 <#assign IAEST_TipologiaDatosOrigen=""/>
75 <#assign IAEST_Fuente=""/>
76 <#assign IAEST_TratamientoEstadistico=""/>
77
78
79 <#assign extras = data.result.extras>
80 <#assign hasIAESTExtras = false/>
81 <#list 0 ..< extras.length() as i>
82
83 <#if extras.get(i).key == "TemporalFrom">
84 <#assign fromRaw = extras.get(i).value!"">
85 <#if fromRaw?has_content && fromRaw?matches("^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$")>
86 <#attempt>
87 <#assign from = fromRaw?date("yyyy-MM-dd")?string("dd/MM/yyyy")/>
88 <#recover>
89 <#assign from = "Fecha no especificada"/>
90 </#attempt>
91 </#if>
92 </#if>
93 <#if extras.get(i).key == "TemporalUntil">
94 <#assign toRaw = extras.get(i).value!"">
95 <#if toRaw?has_content && toRaw?matches("^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$")>
96 <#attempt>
97 <#assign to = toRaw?date("yyyy-MM-dd")?string("dd/MM/yyyy")/>
98 <#recover>
99 <#assign to = "Fecha no especificada"/>
100 </#attempt>
101 </#if>
102 </#if>
103
104
105 <#if extras.get(i).key == "Frequency">
106 <#assign frequency = extras.get(i).value?capitalize/>
107 </#if>
108 <#if extras.get(i).key == "typeAragopedia">
109 <#assign typeAragopedia = extras.get(i).value/>
110 </#if>
111 <#if extras.get(i).key == "uriAragopedia">
112 <#assign uriAragopedia = extras.get(i).value/>
113 </#if>
114 <#if extras.get(i).key == "Data Dictionary">
115 <#assign dataDictionary = extras.get(i).value/>
116 </#if>
117 <#if extras.get(i).key?starts_with("Data Dictionary URL")>
118 <#assign dataDictionaryURL = dataDictionaryURL + [extras.get(i).value]/>
119 </#if>
120 <#if extras.get(i).key == "Data Quality">
121 <#assign extraDataQuality = extras.get(i).value/>
122 </#if>
123 <#if extras.get(i).key?starts_with("Data Quality URL")>
124 <#assign extraDataQualityURL = extraDataQualityURL + [extras.get(i).value]/>
125 </#if>
126 <#if extras.get(i).key == "Granularity">
127 <#assign granularity = extras.get(i).value/>
128 </#if>
129 <#if extras.get(i).key == "01_IAEST_Tema estadistico">
130 <#assign hasIAESTExtras = true/>
131 <#assign IAEST_TemaEstadistico = extras.get(i).value/>
132 </#if>
133 <#if extras.get(i).key == "02_IAEST_Unidad Estadistica">
134 <#assign hasIAESTExtras = true/>
135 <#assign IAEST_UnidadEstadistica = extras.get(i).value/>
136 </#if>
137 <#if extras.get(i).key == "03_IAEST_Poblacion estadistica">
138 <#assign hasIAESTExtras = true/>
139 <#assign IAEST_PoblacionEstadistica = extras.get(i).value/>
140 </#if>
141 <#if extras.get(i).key == "04_IAEST_Unidad de medida">
142 <#assign hasIAESTExtras = true/>
143 <#assign IAEST_UnidadDeMedida = extras.get(i).value/>
144 </#if>
145 <#if extras.get(i).key == "05_IAEST_Legislacion UE">
146 <#assign hasIAESTExtras = true/>
147 <#assign IAEST_LegislacionUE = extras.get(i).value/>
148 </#if>
149 <#if extras.get(i).key == "06_IAEST_Periodo base">
150 <#assign hasIAESTExtras = true/>
151 <#assign IAEST_PeriodoBase = extras.get(i).value/>
152 </#if>
153 <#if extras.get(i).key == "07_IAEST_Tipo de operacion">
154 <#assign hasIAESTExtras = true/>
155 <#assign IAEST_TipoOperacion = extras.get(i).value/>
156 </#if>
157 <#if extras.get(i).key == "08_IAEST_Tipologia de datos de origen">
158 <#assign hasIAESTExtras = true/>
159 <#assign IAEST_TipologiaDatosOrigen = extras.get(i).value/>
160 </#if>
161 <#if extras.get(i).key == "09_IAEST_Fuente">
162 <#assign hasIAESTExtras = true/>
163 <#assign IAEST_Fuente = extras.get(i).value/>
164 </#if>
165 <#if extras.get(i).key == "11_IAEST_Tratamiento estadistico">
166 <#assign hasIAESTExtras = true/>
167 <#assign IAEST_TratamientoEstadistico = extras.get(i).value/>
168 </#if>
169 </#list>
170
171
172 <#if typeAragopedia?has_content>
173 <h3>${languageUtil.get(locale, "territorio-en-el-que-existen-datos")}</h3>
174 <p class="mb-3">${languageUtil.get(locale, "este-conjunto-de-datos-contiende-datos-en-el-territorio-de")} ${typeAragopedia}</p>
175 <p>Esta es la <a target="_blank" href="${uriAragopedia}"> ${languageUtil.get(locale, "uri-del-recurso")} </a></p>
176 </#if>
177
178 <#if frequency?has_content>
179 <h3>${languageUtil.get(locale, "frecuencia-de-actualizacion")}</h3>
180 <p>${frequency}</p>
181 </#if>
182
183 <#if from?has_content || to?has_content>
184 <h3>${languageUtil.get(locale, "periodo-de-tiempo-en-el-que-existen-datos")}</h3>
185 <p>${from} - ${to}</p>
186 </#if>
187
188 <#if data.result.license_url?has_content>
189 <h3>${languageUtil.get(locale, "license")} </h3>
190 <p><a href="${data.result.license_url}">${data.result.license_title}</a></p>
191 </#if>
192
193 <#if granularity?has_content>
194 <h3>${languageUtil.get(locale, "nivel-de-detalle")} </h3>
195 <p>${granularity}</p>
196 </#if>
197
198 <#if ((extraDataQualityURL?size) > 0)>
199 <h3>${languageUtil.get(locale, "calidad-del-dato")} </h3>
200 <p>${languageUtil.get(locale, "calidad-del-dato-texto")}</p>
201 <#list extraDataQualityURL as extraDataQualityURLElem>
202 <p><a href="${extraDataQualityURLElem}">[${extraDataQualityURLElem?index + 1}] ${languageUtil.get(locale, "documento-de-calidad-de-dato")}</a></p>
203 </#list>
204 </#if>
205
206 <#if dataDictionary?has_content>
207 <h3>${languageUtil.get(locale, "data-dictionary")} </h3>
208 <p>${dataDictionary}</p>
209 <#list dataDictionaryURL as dataDictionaryURLElem>
210 <p><a href="${dataDictionaryURLElem}">[${dataDictionaryURLElem?index + 1}] ${languageUtil.get(locale, "documento-de-diccionario-de-datos")}</a></p>
211 </#list>
212 </#if>
213 <div id="showMapLink" style="display: none;">
214 <p>
215 <a id="mapLink" href="#">${languageUtil.get(locale, "relacion-entre-la-estructura-del-recurso")}</a> ${languageUtil.get(locale, "y-la-estrutura-de-informacion-interoperable-de-aragon")} <a target="_blank" href="https://opendata.aragon.es/def/ei2a/">(EI2A)</a>
216 </p>
217 </div>
218
219 </section>
220
221 <#if hasIAESTExtras>
222 <section class=" opendata__dataset-detail__body u-padding-bottom-4 u-padding-bottom-sm-6 mt-4 readSpeakerOrigin">
223 <h2>${languageUtil.get(locale, "propiedades-adicionales-de-los-metadatos")} </h2>
224
225 <#if IAEST_TemaEstadistico?has_content>
226 <h3>${languageUtil.get(locale, "extra-iaest-tema-estadistico")}</h3>
227 <p>${IAEST_TemaEstadistico}</p>
228 </#if>
229 <#if IAEST_UnidadEstadistica?has_content>
230 <h3>${languageUtil.get(locale, "extra-iaest-unidad-estadistica")}</h3>
231 <p>${IAEST_UnidadEstadistica}</p>
232 </#if>
233 <#if IAEST_PoblacionEstadistica?has_content>
234 <h3>${languageUtil.get(locale, "extra-iaest-poblacion-estadistica")}</h3>
235 <p>${IAEST_PoblacionEstadistica}</p>
236 </#if>
237 <#if IAEST_UnidadDeMedida?has_content>
238 <h3>${languageUtil.get(locale, "extra-iaest-unidad-medida")}</h3>
239 <p>${IAEST_UnidadDeMedida}</p>
240 </#if>
241 <#if IAEST_LegislacionUE?has_content>
242 <h3>${languageUtil.get(locale, "extra-iaest-legislacion-ue")}</h3>
243 <p>${IAEST_LegislacionUE}</p>
244 </#if>
245 <#if IAEST_PeriodoBase?has_content>
246 <h3>${languageUtil.get(locale, "extra-iaest-periodo-base")}</h3>
247 <p>${IAEST_PeriodoBase}</p>
248 </#if>
249 <#if IAEST_TipoOperacion?has_content>
250 <h3>${languageUtil.get(locale, "extra-iaest-tipo-operacion")}</h3>
251 <p>${IAEST_TipoOperacion}</p>
252 </#if>
253 <#if IAEST_TipologiaDatosOrigen?has_content>
254 <h3>${languageUtil.get(locale, "extra-iaest-tipologia-datos-origen")}</h3>
255 <p>${IAEST_TipologiaDatosOrigen}</p>
256 </#if>
257 <#if IAEST_Fuente?has_content>
258 <h3>${languageUtil.get(locale, "extra-iaest-fuente")}</h3>
259 <p>${IAEST_Fuente}</p>
260 </#if>
261 <#if IAEST_TratamientoEstadistico?has_content>
262 <h3>${languageUtil.get(locale, "extra-iaest-tratamiento-estadistico")}</h3>
263 <p>${IAEST_TratamientoEstadistico}</p>
264 </#if>
265
266 </section>
267 </#if>
268 </section>
269
270 <section class="col-xs-12 col-md-6 col-lg-4">
271 <div class="opendata__dataset-detail__aside readSpeakerOrigin">
272 <h2>${languageUtil.get(locale, "descargas")}</h2>
273 <div class="opendata__dataset-detail__aside__module">
274
275 <h3>${languageUtil.get(locale, "archivos-con-los-datos")}</h3>
276
277 <ul>
278 <#assign resourcesMap = freemarkerUtilities.getDatasetResourcesByTitle(data)>
279 <#assign isSecure = httpComponentsUtil.isSecure(themeDisplay.getPortalURL())>
280
281 <#list resourcesMap?keys as name>
282 <li class="title">${name}</li>
283
284 <#list 0 ..< resourcesMap[name].length() as i>
285 <#assign resource = resourcesMap[name].get(i) />
286 <#assign resourceURL = resource.url />
287 <#assign resourceType = resource.resource_type />
288
289 <#if resourceURL?starts_with("http://desopendata.aragon.es") || resourceURL?starts_with("http://preopendata.aragon.es") || resourceURL?starts_with("http://opendata.aragon.es")>
290 <#assign resourceURL = resourceURL?replace("http", "https") />
291 </#if>
292
293 <#if !resourceType?has_content || resourceType == 'null' || resourceType == 'file'>
294 <#assign resourceURL = httpComponentsUtil.protocolize(resource.url, isSecure) />
295 </#if>
296
297 <li class="btn-border"> <a href="${htmlUtil.escapeAttribute(resourceURL)}" target="_blank">${resource.format} <i class="fa ${(resource.format=="HTML" || resource.format=="URL")?then("fa-external-link","fa-cloud-download")}" aria-hidden="true"></i><span class="oculto"><@liferay.language key="download" /></span></a>
298 <#if resource.previewUrl?has_content && resource.format !="HTML" && resource.format !="URL" >
299 | <a onclick="modalIframe('${resource.previewUrl}');" target="_blank"><i class="fa fa-eye" aria-hidden="true"></i><span class="oculto"><@liferay.language key="previsualize" /></span></a>
300 </#if>
301 </li>
302 <#if resource.format?has_content && (resource.format=='PX' || resource.format=='px') >
303 <#assign urlCSV= freemarkerUtilities.getCSVFromPXUrl() + data.result.name + "/resourceCSV/" + (resourceURL?split("iaeaxi_docs/")[1])?replace("/","-")/>
304 <#if urlCSV?starts_with("http://desopendata.aragon.es") || urlCSV?starts_with("http://preopendata.aragon.es") || urlCSV?starts_with("http://opendata.aragon.es")>
305 <#assign urlCSV = resourceURL?replace("http", "https") />
306 </#if>
307 <li class="btn-border"> <a href="${htmlUtil.escapeAttribute(urlCSV)}" target="_blank">CSV <i class="fa fa-cloud-download" aria-hidden="true"></i><span class="oculto"><@liferay.language key="download" /></span></a>
308 </li>
309 </#if>
310 </#list>
311 </#list>
312 </ul>
313 <h3>${languageUtil.get(locale, "metadatos-de-la-coleccion")}</h3>
314 <ul>
315 <li class="btn-border"><a href="https://opendata.aragon.es/ckan/dataset/ejecucion-presupuestaria-2022.rdf" target="_blank">${languageUtil.get(locale, "RDF")} <i class="fa fa-cloud-download" aria-hidden="true"></i></a></li>
316 </ul>
317 </div>
318 </div>
319 </section>
320 </div>
321 </div>
322
323
324 <#if recommendedDatasets?size !=0>
325 <#assign showRecommended = false/>
326 <#list recommendedDatasets as recommendedDataset>
327 <#if recommendedDataset.groups.length()!=0>
328 <#assign showRecommended = true/>
329 </#if>
330 </#list>
331 <#if showRecommended>
332 <div class="opendata__dataset-detail__relacionados">
333 <h2 class="mt-5">
334 <span class="container readSpeakerOrigin">${languageUtil.get(locale,"tambien-te-puede-interesar-estos-datos")}</span>
335 </h2>
336 <div class="container">
337 <div class="row">
338 <#list recommendedDatasets as recommendedDataset>
339 <#if recommendedDataset.groups.length()!=0>
340 <div class="col-md-4 d-flex mb-5">
341 <div class="opendata__visor opendata__visor__otros-datos">
342 <h3>${recommendedDataset.groups.get(0).title}</h3>
343
344 <img src="${recommendedDataset.groups.get(0).image_display_url}" alt="${recommendedDataset.groups.get(0).title}" />
345 <p><a href="/datos/catalogo/dataset/${recommendedDataset.name}">${recommendedDataset.title}</a></p>
346 </div>
347 </div>
348 </#if>
349 </#list>
350 </div>
351 </div>
352 <div class="opendata__dataset-detail__rating">
353 <div class="rating mt-5 mb-5">
354 <input type="radio" name="rating" value="5" id="5" ${(data.result.rating?round == 5)?then('checked','')}>
355 <label for="5">☆</label>
356 <input type="radio" name="rating" value="4" id="4" ${(data.result.rating?round == 4)?then('checked','')}>
357 <label for="4">☆</label>
358 <input type="radio" name="rating" value="3" id="3" ${(data.result.rating?round == 3)?then('checked','')}>
359 <label for="3">☆</label>
360 <input type="radio" name="rating" value="2" id="2" ${(data.result.rating?round == 2)?then('checked','')}>
361 <label for="2">☆</label>
362 <input type="radio" name="rating" value="1" id="1" ${(data.result.rating?round == 1)?then('checked','')}>
363 <label for="1">☆</label>
364 <span>${languageUtil.get(locale,"te-ha-sido-util-esta-pagina")}</span>
365 </div>
366 </div>
367 </div>
368 </#if>
369 </#if>
370 <#else>
371 <#if themeDisplay.isSignedIn()>
372 <div class="my-3">
373 <div class="container">
374 <div class="alert alert-info">
375 <p class="mb-0"><b>${languageUtil.get(locale, "status")}: </b> ${status}</p>
376 <span>${languageUtil.get(locale, "no-ha-sido-posible-cargar-los-datos")}</span>
377 </div>
378 </div>
379 </div>
380 <#else>
381 ${request.setAttribute("PORTLET_CONFIGURATOR_VISIBILITY", false)}
382 </#if>
383 </#if>
384</div>
385
386
387<#assign resourceDatasetPortletURL = renderResponse.createResourceURL() />
388${resourceDatasetPortletURL.setResourceID("/action/dataset")}
389
390<script type="text/javascript">
391
392 $(document).ready(function() {
393
394 if (localStorage.getItem("user_key") == null){
395 localStorage.setItem("user_key",userKeyGenerator(16,"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"));
396 }
397
398 $.ajax({
399 url: '${resourceDatasetPortletURL}',
400 method: "POST",
401 dataType: "json",
402 data: {
403 ${renderResponse.namespace}cmd: 'ei2aMapping',
404 ${renderResponse.namespace}id: '${data.result.id}',
405 },
406 success: function(res, status, xhr){
407 if(res.result){
408 $('#showMapLink').show();
409 $('#mapLink').attr("href",res.url);
410 }
411 }
412 });
413
414
415 $.ajax({
416 url: '${resourceDatasetPortletURL}',
417 method: "POST",
418 dataType: "json",
419 data: {
420 ${renderResponse.namespace}cmd: 'trackDataset',
421 ${renderResponse.namespace}user_key: localStorage.getItem("user_key"),
422 ${renderResponse.namespace}url: '/dataset/${data.result.name}'
423 },
424 success: function(jqXHR,response){}
425 });
426 });
427
428 function userKeyGenerator(length, chars) {
429 var result = '';
430 for (var i = length; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)];
431 return result;
432 }
433
434 $('input[name="rating"]').on('click', function() {
435 var value = $(this).val();
436
437 $.ajax({
438 url: '${resourceDatasetPortletURL}',
439 method: "GET",
440 dataType: "json",
441 data: {
442 ${renderResponse.namespace}cmd: 'rateDataset',
443 ${renderResponse.namespace}value: value,
444 ${renderResponse.namespace}name: '${data.result.name}'
445 },
446 success: function(jqXHR,response){
447 Liferay.Util.openToast({
448 message: Liferay.Language.get(
449 (jqXHR.statusCode == 200 ? 'your-request-processed-successfully' :
450 'your-request-failed-to-complete')),
451 title: Liferay.Language.get(jqXHR.statusCode == 200 ? 'success' : 'error'),
452 type: jqXHR.statusCode == 200 ? 'success' : 'danger'
453 });
454 }
455 });
456 });
457
458 function modalIframe(url) {
459 AUI().use(
460 'aui-base',
461 'liferay-util-window',
462 function (A) {
463 var dialog = Liferay.Util.Window.getWindow({
464 dialog: {
465 bodyContent: '<iframe class="embed-responsive embed-responsive-item" src="' + url + '" style="height: 100%;" frameBorder="0"></iframe>',
466 destroyOnHide: true,
467 resizable: false,
468 toolbars: {
469 header: [{
470 cssClass: 'close',
471 discardDefaultButtonCssClasses: true,
472 labelHTML: Liferay.Util.getLexiconIconTpl('times'),
473 on: {
474 click: function () {
475 dialog.hide();
476 }
477 }
478 }]
479 },
480 },
481 title: 'Previsualizar el contenido',
482 });
483 }
484 );
485 }
486</script>
¿Te ha resultado útil esta página?
Tu respuesta nos ayudará a mejorar la web
Gracias por tu valoración
Para cualquier consulta, escríbenos a portalpublico@aragon.es
Puedes dejar aquí tu comentario anónimo.