Se ha producido un error al procesar la plantilla.
Expression layout.getExpandoBridge().getAttribute("max-height") is undefined on line 9, column 33 in 10154#10194#60622.
1<!--[if lte IE 9]>
2<script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.0/jquery.xdomainrequest.min.js'></script>
3<![endif]-->
4<#assign liferayUi = taglibLiferayHash["/WEB-INF/tld/liferay-ui.tld"]/>
5<#assign smart = taglibLiferayHash["/WEB-INF/tld/smart.tld"]/>
6<#assign liferay_util = taglibLiferayHash["/WEB-INF/tld/liferay-util.tld"] />
7<#assign LayoutLocalService = serviceLocator.findService("com.liferay.portal.service.LayoutLocalService")>
8
9<#assign maxHeight = "maxh_" + layout.getExpandoBridge().getAttribute("max-height")>
10<#assign minHeight = "minh_" + layout.getExpandoBridge().getAttribute("min-height")>
11<#assign bkgColor = layout.getExpandoBridge().getAttribute("bkg-color")>
12<#assign originalRequest = portalUtil.getOriginalServletRequest(portalUtil.getHttpServletRequest(renderRequest))>
13<#assign selector = (originalRequest.getAttribute("selectorCategorias")?string)!"" >
14<#assign selectorLocalidades = (originalRequest.getAttribute("selectorLocalidades")?string)!"" >
15<#assign urlBuscador = propsUtil.get("recursos.turisticos.buscador")>
16<#assign urlMunicipios = propsUtil.get("recursos.turisticos.municipios")>
17<#assign urlRecursosvb = propsUtil.get("recursos.turisticos.recursosvb")>
18<#assign resultadosPagina=10>
19<#assign paramContent = (originalRequest.getParameter("categoria")?string)!"">
20<#assign paramContentPadre = (originalRequest.getParameter("categoriaPadre")?number)!"">
21<#assign paramCoordenadaX = (originalRequest.getParameter("coordenadaX")?number)!"">
22<#assign paramCoordenadaY = (originalRequest.getParameter("coordenadaY")?number)!"">
23<#assign contador=0>
24
25<#--FRIENDLY URLS-->
26<#assign layoutRecursoPan1 = LayoutLocalService.getFriendlyURLLayout(layout.getGroup().getGroupId(), layout.isPrivateLayout(), "/recursopan1")>
27<#assign layoutReserva = LayoutLocalService.getFriendlyURLLayout(layout.getGroup().getGroupId(), layout.isPrivateLayout(), "/realiza-reserva")>
28
29<#assign urlRecursoPan1 = layoutRecursoPan1.getRegularURL(request)>
30<#assign urlReserva = layoutReserva.getFriendlyURL(locale)>
31<#assign reserva = urlReserva?replace("/", "")>
32
33<#assign urlValorar = propsUtil.get("recursos.turisticos.valoracionRecursos")>
34
35<@liferay_util["buffer"] var="listadosLib">
36 <@liferay_util["include"]
37 page="/html/listados.jsp"
38 strict=true
39 useCustomPage=false
40 />
41</@>
42
43<div class="panel listadoD recursosMasValorados clearfix ${maxHeight} ${minHeight}" style="background-color: ${bkgColor}">
44 <div class="container navBarTopPadding valign-none">
45 <div class="row-fluid">
46 <div class="span12 title">
47 <h2>
48 <@liferayUi["message"] key="portalweb.templates.listado_top6_home.lo_mas_valorado" />
49 </h2>
50 </div>
51 </div>
52 <#--
53 <div class="row-fluid row-gutter-small row-gutter-bottom">
54 <div class="span12 ">
55 <div class="text-bkg text-container text">
56
57 <@liferayUi["message"] key="portalweb.templates.listadoRecursos.masValorados.entradilla" />
58 </div>
59 </div>
60 </div>
61 -->
62 <div class="row-fluid hidden">
63 <div class="accordion accordion-depo" id="accordionRecursos">
64 <div class="accordion-group ">
65 <div class="accordion-heading text-bkg-result">
66 <a class="accordion-toggle dont-intercept" data-toggle="collapse" data-parent="#accordionRecursos" href="#collapseFormRecursos">
67 <span class="link-show"><i class="link-icon icon-chevron-down"></i><@liferayUi["message"] key="portalweb.templates.listados.mostrarFiltros" /></span>
68 <span class="link-hide"><i class="link-icon icon-chevron-up"></i><@liferayUi["message"] key="portalweb.templates.listados.ocultarFiltros" /></span>
69 </a>
70 </div>
71 <div class="accordion-body in collapse" id="collapseFormRecursos">
72 <div class="span12 span12 text-bkg clearfix">
73 <form id="filtroMapaRecursos" name="filtroListadoRecursos" action="" method="post" class="event-filters filtroExperiencias buscar">
74 <div class="row-fluid">
75 <div class="span4 form-item-group input-type-of">
76 <label for="txtBusca"><@liferayUi["message"] key="portalweb.templates.listadoRecursos.nombre" /></label>
77 <input type="text" placeholder="<@liferayUi["message"] key="portalweb.templates.listadoRecursos.plantillaBuscador" />"
78 name="txtBusca" id="txtBusca">
79 </div>
80
81 <div class="span4 form-item-group input-type-of">
82 <label for="municipio"><@liferayUi["message"] key="portalweb.templates.listadoRecursos.localidad" /></label>
83 <select class=" sExp populate select2-offscreen" id="municipio" name="municipio" multiple="" tabindex="-1">
84 </select>
85 </div>
86
87 <div class="span4 form-item-group input-type-of">
88 <label for="categoria"><@liferayUi["message"] key="portalweb.templates.listadoRecursos.categoria" /></label>
89 <input class="sExp populate select2-offscreen" id="categoria" name="categoria" tabindex="-1">
90 </div>
91 </div>
92
93 <div class="row-fluid row-gutter-small">
94
95 <div class="span4 form-item-group select-order">
96 <label for="ordenar"><@liferayUi["message"] key="portalweb.templates.listadoEventos.ordenar" /></label>
97 <select class="sExp populate select2-offscreen" id="ordenarRecurso" name="ordenarRecurso" >
98 <option value="3"><@liferayUi["message"] key="portalweb.templates.mapa.masValorado" /></option>
99 <#if paramCoordenadaX?has_content >
100 <option value="cercano_ASC"><@liferayUi["message"] key="portalweb.templates.mapa.masCercano" /></option>
101 </#if>
102 <option value="1"><@liferayUi["message"] key="portalweb.templates.listadoEventos.titulo" /></option>
103 </select>
104 </div>
105
106 <#-- Muestra el combo de radio si llegaron las coordenadas -->
107 <#if paramCoordenadaX?has_content >
108 <div class="span4 form-item-group select-order">
109 <label for="radioBusqueda"><@liferayUi["message"] key="portalweb.templates.listadoRecursos.radioBusqueda" /></label>
110 <select class="populate select2-offscreen" id="radioBusqueda" name="radioBusqueda" >
111 <option value="2">2 KM</option>
112 <option value="5">5 KM</option>
113
114 <option value="10">10 KM</option>
115
116 <option value="15">15 KM</option>
117 </select>
118 </div>
119
120
121
122
123
124
125
126
127
128
129
130
131 </#if>
132
133 </div>
134
135 <div class="row-fluid">
136 <div class="span4 offset8 form-item-group accions actions-container clearfix">
137 <input type="submit" value="Buscar" class="buscar btn btn-primary pull-right" name="buscar" >
138 <a href="#" class="restablecer pull-right dont-intercept"><@liferayUi["message"] key="portalweb.templates.listadoRecursos.restablecer" /></a>
139 </div>
140 </div>
141 </form>
142 </div>
143 </div>
144 </div>
145 </div>
146 </div>
147
148 <div class="row-fluid row-gutter">
149 <div class="span12 vistas clearfix">
150 <div class="row-fluid">
151 <div class="span5" id="result-header">
152
153 </div>
154
155 <div class="span6" id="listaVistas">
156 <a class="cambioVista dont-intercept" href="#" data-rel="vista-mapa">
157 <i class="icon-map-marker"></i>
158 <span ><@liferayUi["message"] key="portalweb.templates.listadoRecursos.mapa" /></span>
159 </a>
160 <a class="cambioVista selected dont-intercept" href="#" data-rel="vista-listado">
161 <i class="icon-list"></i>
162 <span ><@liferayUi["message"] key="portalweb.templates.listadoRecursos.listado" /></span>
163 </a>
164 </div>
165 </div>
166 </div>
167 </div>
168
169 <div id="topPaginator" class="row-fluid row-gutter-bottom">
170 <div class="span12">
171 <div class=" vistas pag clearfix fake">
172
173 </div>
174 </div>
175 </div>
176
177 <div class="row-fluid clearfix" id="vista-listado">
178 <div class="row-fluid">
179 <div class="span12 clearfix">
180 <div id="result-listado">
181 <div class="row-fluid row-gutter row-gutter-bottom-large">
182 <div class="span12">
183 <div class="text-bkg text-container text ">
184 <span class="offset1">
185 <@liferayUi["message"] key="portalweb.templates.listados.buscandoRecursos" />
186 </span>
187 </div>
188 </div>
189 </div>
190 </div>
191 </div>
192 </div>
193 <div id ="bottomPaginator" class="row-fluid">
194 <div class="span12">
195 <div class=" vistas pag clearfix real">
196
197 </div>
198 </div>
199 </div>
200 </div>
201
202 <div class="row-fluid row-gutter-bottom hidden" id="vista-mapa">
203 <div class="span12 height-extra-large" id="listadoRecursosMapWrapper">
204 <@smart["mapanavegable"]
205 mapaElement="mapaLocBusqRec"
206 containerId="#listadoRecursosMapWrapper"
207 dimensionsFromContainer="true"
208 resizeWithContainer="true"
209 filtro="false"
210 />
211 </div>
212 </div>
213 <div class="row-fluid row-gutter">
214 <div class="span12">
215 <#--
216 <div class="row-fluid">
217 <div class="span12">
218 <div class="title title-bright emphasized"><@liferayUi["message"] key="portalweb.templates.listados.tituloDestacados" /> </div>
219 </div>
220 </div>
221 -->
222 <div class="row-fluid row-gutter-small">
223 <div class="span12">
224 <div id="listadoDestacadoEventos">
225 <script type="text/javascript" >
226 //carga el listado destacados
227 jQuery.post("/web/portal-web/te-puede-interesar", {ajax:true}, function(data){
228 jQuery("#listadoDestacadoEventos").replaceWith(jQuery(data).find(".te-puede-interesar-container"));
229 });
230 </script>
231 </div>
232 </div>
233 </div>
234 </div>
235 </div>
236 </div>
237
238<#-- Se importan las librerias de funcionalidades comunes a los listados -->
239${listadosLib}
240
241<script type="text/x-tmpl" id="tmpl-cabecera">
242 {% if (o.marcadores.length > 0) { %}
243 <p class="numRes"><span class="mostramos-total"><@liferayUi["message"] key="portalweb.templates.listadoRecursos.mostramosTotal" /> </span> <span class="num-res"> {%=o.paginacion.resultadosTotales%} </span> <@liferayUi["message"] key="portalweb.templates.listadoRecursos.recursosEncontrados" /></p>
244 {% } else { %}
245 <p class="mostramos-ninguno" ><@liferayUi["message"] key="portalweb.templates.listadoRecursos.sinResultados" /></p>
246 {% } %}
247</script>
248
249<script type="text/x-tmpl" id="tmpl-listado">
250
251 <div class="listadoRecursosResp">
252
253
254
255
256 {%var it = 0;%}
257
258 {% for (var i=0; i<o.marcadores.length; i++) {
259
260 if((it >= ((o.paginacion.pagina-1)*o.paginacion.resultadosPagina)) && (it < (o.paginacion.pagina*o.paginacion.resultadosPagina))){
261 %}
262
263
264 <div class="row-fluid row-gutter-bottom">
265 <div class="span12 text-bkg">
266 <div id="it_{%=o.paginacion.resultadosPagina-1*o.paginacion.resultadosPagina +it%}" class="itemR clearfix">
267 <div class="row-fluid">
268 <div class="span9">
269 <div class="text-container">
270 <div class="row-fluid">
271 <div class="span12">
272 <div class="tit">
273 <#--/recursopan1-->
274 <a href="${urlRecursoPan1}?content={%=o.marcadores[i].pt.id%}" class="enlazaDetalle" title="Ver detalle">
275 {%=o.marcadores[i].pt.nombre%}
276 </a>
277 </div>
278 </div>
279 </div>
280 <div class="row-fluid">
281 <div class="span12">
282 <div class="info clearfix">
283 <div class="row-fluid">
284 <div class="span3">
285 {% if (o.marcadores[i].pt.imagen == "") { %}
286 <div style="background-image: url('${originalRequest.getContextPath()}/imaxes/imagenPrueba.png')" class="img">
287
288 {% } else { %}
289 {% if ((o.marcadores[i].pt.imagen).indexOf("/imaxes") == 0) { %}
290 <div style="background-image: url('{%= o.marcadores[i].pt.imagen%}')" class="img">
291 {% } else { %}
292 <div style="background-image: url('/imaxes/{%= o.marcadores[i].pt.imagen%}')" class="img">
293 {% } %}
294 {% } %}
295 </div>
296 </div>
297 <div class="span9">
298 <div class="row-fluid">
299 <div class="campos">
300 <span class="cat">
301 {% if(o.marcadores[i].catPai == "" || o.marcadores[i].catPai == null){ %}
302
303 {%=o.marcadores[i].cat%}
304
305 {% }else{ %}
306
307 {%= $("#categoria option[value='padre_" + o.marcadores[i].catPai + "']").text() %}
308
309 {% } %}
310
311 > {%=o.marcadores[i].pt.nombreSubtipo%}</span>
312 <span class="localidad">{%=o.marcadores[i].pt.localidad%}</span>
313
314 {% if (o.marcadores[i].pt.descripcion && ("" != o.marcadores[i].pt.descripcion)) { %}
315 <div class="row-fluid">
316 {%=o.marcadores[i].pt.descripcion %}
317 </div>
318 {% } %}
319 </div>
320 </div>
321 <div class="row-fluid row-gutter-small">
322 {% if ((o.marcadores[i].pt.telefono) || (o.marcadores[i].pt.telefonoMovil)) { %}
323 <div class="span5">
324 <div class="text-info link-list-phone">
325 <ul>
326
327 {% if (o.marcadores[i].pt.telefono) { %}
328 {% for (var j=0; j<o.marcadores[i].pt.telefono.length; j++) { %}
329 <li>{%=o.marcadores[i].pt.telefono[j]%}</li>
330 {% } %}
331 {% } %}
332
333
334 {% if (o.marcadores[i].pt.telefonoMovil) { %}
335 {% for (var j=0; j<o.marcadores[i].pt.telefonoMovil.length; j++) { %}
336 <li>{%=o.marcadores[i].pt.telefonoMovil[j]%}</li>
337 {% } %}
338 {% } %}
339 </ul>
340 </div>
341
342
343
344 </div>
345 {% } %}
346 {% if (o.marcadores[i].pt.web) { %}
347
348 <div class="span7">
349 <div class="text-info link-list-contact">
350 <ul>
351
352 {% if (o.marcadores[i].pt.web) { %}
353 <a href="{%=o.marcadores[i].pt.web%}" target="_blank" ><li>{%=o.marcadores[i].pt.web%}</li></a>
354 {% } %}
355 </ul>
356 </div>
357
358
359 </div>
360 {% } %}
361
362 </div>
363 </div>
364 </div>
365 </div>
366 </div>
367 </div>
368 </div>
369 </div>
370 {%
371 var cssCol = "itemR-extra-info-container";
372 var totalTelefonos = 0;
373 if (o.marcadores[i].pt.descripcion && ("" != o.marcadores[i].pt.descripcion)) {
374 cssCol += " con-descripcion";
375 }
376 if (o.marcadores[i].pt.telefono) {
377 totalTelefonos += o.marcadores[i].pt.telefono.length;
378 }
379 if (o.marcadores[i].pt.telefonoMovil) {
380 totalTelefonos += o.marcadores[i].pt.telefonoMovil.length;
381 }
382 if (totalTelefonos > 0) {
383 cssCol += " con-telefonos-" + totalTelefonos;
384 }
385 if (o.marcadores[i].pt.web && ("" != o.marcadores[i].pt.web)) {
386 cssCol += " con-pweb";
387 }
388 if (o.marcadores[i].pt.esReservable == "1") {
389 cssCol += " offer";
390 }
391 %}
392
393
394
395
396
397
398 <div class="span3 {%= cssCol%}">
399 <#--
400 <div class="row-fluid height-extra-small">
401 <a href="/recursopan1?content={%=o.marcadores[i].pt.id%}" class="verDetalle enlazaDetalle" title="Ver detalle"><@liferayUi["message"] key="portalweb.templates.listadoRecursos.verDetalle" /></a>
402 </div>
403 -->
404
405 {% if (o.marcadores[i].pt.esReservable == "1") { %}
406 <div class="row-fluid boundary-row">
407 <div class="span12">
408 <div class="boundary-container" data-resource-id="{%=o.marcadores[i].pt.id%}">
409 {%
410 var precioMax = o.marcadores[i].pt.precioMax;
411 var precioMin = o.marcadores[i].pt.precioMin;
412 var estiloPrecioMin = '';
413 if ((precioMax == 0) || (precioMin == precioMax)) {
414 estiloPrecioMin = "unique-value";
415 }
416
417 if ((precioMin > 0) && (precioMax > 0)) {
418 %}
419 <div class="boundary-lower">
420 <span class="value {%=estiloPrecioMin%}">{%=precioMin%}</span><span class="units">€</span>
421 </div>
422 {% if (((precioMin > 0) && (precioMax > 0)) && (precioMin != precioMax)) { %}
423 <div class="boundary-separator">-</div>
424 {% } if ((precioMax > 0) && (precioMin != precioMax)) { %}
425 <div class="boundary-higher">
426 <span class="value">{%= precioMax %}</span><span class="units">€</span>
427 </div>
428 {% } %}
429 {% } %}
430 </div>
431 </div>
432
433 </div>
434 {% } %}
435
436 <div class="row-fluid average-container">
437 <div class="liferay-rating-score" id="{%=o.marcadores[i].pt.id%}" >
438
439
440 {% var numberOfStars = 5;
441 for (var ind = 1; ind <= numberOfStars; ind++) {
442 var iconoEstrella = (ind<=o.marcadores[i].pt.valoracionMedia)?"icon-star":"icon-star-empty"; %}
443
444 <a class="dont-intercept rating-element {%=iconoEstrella%}" id="{%=o.marcadores[i].pt.id%}-{%=ind%}" rel="{%=ind%}" onclick="ajaxValoracion('send', {%=ind%}, {%= o.marcadores[i].pt.id %})" title="{%=o.marcadores[i].pt.valoracionMedia%}"></a>
445
446 {% } %}
447
448 </div>
449 </div>
450
451 <div class="row-fluid text-bkg-primary-color item-options-container">
452 <div class="add-lnk-container" >
453
454 <a href="#" class="add-link-text dont-intercept"
455 data-id-content="{%=o.marcadores[i].pt.id%}" data-title="{%=o.marcadores[i].pt.nombre%}">
456 <@liferayUi["message"] key="portalweb.templates.detalleExperienciaPanel2.anadir_viaje" />
457 </a>
458 </div>
459 {% if (o.marcadores[i].pt.esReservable == "1") { %}
460 <div class="reservation-lnk-container" >
461
462 <span class="reservation-link-icon"></span>
463 <a href="${reserva}?reservaId={%=o.marcadores[i].pt.id%}" class="reservation-link dont-intercept">
464 <@liferayUi["message"] key="portalweb.templates.detalleExperienciaPanel2.reserva" />
465 </a>
466 </div>
467 {% } %}
468 </div>
469
470 </div>
471 </div>
472 </div>
473 </div>
474 </div>
475
476 {%
477 }
478 it++;
479
480 %}
481
482 {% } %}
483
484 </div>
485 </script>
486
487<script type="text/javascript">
488
489 var recursos = '';
490 var parametro = '${paramContent}';
491 var parametroPadre = '${paramContentPadre}';
492 var parametroCoordenadaX = '${paramCoordenadaX}';
493 var parametroCoordenadaY = '${paramCoordenadaY}';
494
495
496 function cargarListadoRecursos(data){
497 //console.log('***********Datos obtidos**********/');
498
499 numRes = 0;
500 for (var i=0; i<data.marcadores.length; i++) {
501 for (var j=0; j<data.marcadores[i].pt.length; j++) {
502 numRes++;
503
504
505 }
506 }
507 numResString=""+numRes;
508
509 var recursosOrd = new Array();
510
511 for (var i=0; i<data.marcadores.length; i++) {
512 for (var j=0; j<data.marcadores[i].pt.length; j++) {
513 var objetoMarcador = new Object();
514 objetoMarcador.cat= data.marcadores[i].catDesc;
515 objetoMarcador.catPai=data.marcadores[i].catPai;
516 objetoMarcador.pt= data.marcadores[i].pt[j];
517 recursosOrd.push(objetoMarcador);
518
519 }
520 }
521
522 //si hay coordenadas y el orden es por cercania
523 if(parametroCoordenadaX && parametroCoordenadaX!=''){
524 if (jQuery("#ordenarRecurso").val()=='cercano_ASC') {
525 recursosOrd.sort(function (a, b){
526 try {
527 return parseFloat(a.pt.distancia) > parseFloat(b.pt.distancia) ? 1: parseFloat(a.pt.distancia) < parseFloat(b.pt.distancia)? -1 :0;
528 } catch (error) {
529 return 0;
530 }
531 });
532 }
533 } else {
534 if (jQuery("#ordenarRecurso").val()=='3') {
535 //ordenamos primero por nombre
536 recursosOrd.sort(function (a, b){ return a.pt.nombre > b.pt.nombre ? 1: a.pt.nombre < b.pt.nombre? -1 :0;});
537 //y luego ordenar por valoracion
538 recursosOrd.sort(function (a, b){
539 try {
540 return parseFloat(a.pt.valoracionMedia) < parseFloat(b.pt.valoracionMedia) ? 1: parseFloat(a.pt.valoracionMedia) > parseFloat(b.pt.valoracionMedia)? -1 :0;
541 } catch (error) {
542 return 0;
543 }
544 });
545 } else {
546 recursosOrd.sort(function (a, b){ return a.pt.nombre > b.pt.nombre ? 1: a.pt.nombre < b.pt.nombre? -1 :0;});
547 }
548 }
549
550 recursos = {
551 "marcadores": recursosOrd,
552 "paginacion": {"pagina" : "1","resultadosPagina":"10","resultadosTotales":numResString}
553
554 };
555
556 //console.log(recursos);
557 document.getElementById("result-header").innerHTML = tmpl("tmpl-cabecera", recursos);
558 document.getElementById("result-listado").innerHTML = tmpl("tmpl-listado", recursos);
559
560 /*jQuery('.add-link-text').on('click', function(e){
561 e.preventDefault();
562 alert("Esta funcionalidad se implementa en Fase 2")
563 });
564
565 /* if(typeof jQuery('.pagination').jqPagination() !== 'undefined'){
566 console.log('paginacion destroy()');
567 jQuery('.pagination').jqPagination('destroy','', '');
568 }*/
569
570 addFavouriteLinkListeners();
571
572 if (numRes > 0) {
573 jQuery('.vistas').removeClass('result-none');
574 var pagination ="<div class='pagination'><a href='#' class='first dont-intercept' data-action='first'>«</a>";
575 pagination += "<a href='#' class='previous dont-intercept' data-action='previous'>‹</a>";
576 pagination += "<input type='text' readonly='readonly' >";
577 pagination +="<a href='#' class='next dont-intercept' data-action='next'>›</a>";
578 pagination +="<a href='#' class='last dont-intercept' data-action='last'>»</a></div>";
579
580 jQuery('.pagination').remove();
581 jQuery('.vistas.pag').append(pagination);
582
583
584 jQuery('.pagination').jqPagination({
585 link_string : '#',
586 max_page : (numRes%${resultadosPagina}==0? (Math.floor(numRes/${resultadosPagina})) : (Math.floor(numRes/${resultadosPagina}))+1 ),
587 page_string : '<@liferayUi["message"] key="portalweb.templates.listados.totalPagina" /> {current_page} <@liferayUi["message"] key="portalweb.templates.listados.totalPaginaDe" /> {max_page}',
588 paged: function(page) {
589 //console.log('pagina cambiada' + page);
590 recursos.paginacion.pagina=page;
591 document.getElementById("result-header").innerHTML = tmpl("tmpl-cabecera", recursos);
592 document.getElementById("result-listado").innerHTML = tmpl("tmpl-listado", recursos);
593 addFavouriteLinkListeners();
594 scrollToTopOfSearchPanel('.panel.recursosMasValorados');
595 // Se sincroniza el paginador falso con el real
596 synchronizePaginators();
597 }
598 });
599
600 // Se sincroniza por primera vez paginador falso con el real
601 synchronizePaginators();
602
603 // Se oculta el formulario de filtros
604 if (!restablecerEsOrigenBusqueda) {
605 jQuery('#collapseFormRecursos').collapse('hide');
606 jQuery('a.accordion-toggle').addClass('collapsed');
607 } else {
608 restablecerEsOrigenBusqueda = false;
609 }
610
611 } else {
612 jQuery('.vistas').addClass('result-none');
613 }
614
615 jQuery(".listadoD").css({'height':'auto'});
616
617
618 jQuery('#listaVistas .cambioVista').click(function(e){
619 e.preventDefault();
620 // Se desmarca cualquier otra vista que estuviese seleccionada
621 jQuery('#listaVistas .cambioVista').not(this).each(function() {
622 jQuery(this).removeClass('selected');
623 });
624
625 // Se marca el enlace actual como seleccionado
626 jQuery(this).addClass('selected');
627
628 // Se ocultan todas las vistas
629 jQuery('div [id^=vista-]').each(function() {
630 jQuery(this).addClass('hidden');
631 });
632
633 // Se muestra la vista referenciada por la seleccion
634 jQuery('div [id=' + jQuery(this).attr('data-rel')+ ']').removeClass('hidden');
635
636 // Trampeado para que se muestre bien el mapa
637 if (jQuery(this).attr('data-rel').indexOf('mapa') > 0){
638 console.log("redimensionar");
639 setDimensionsFromContainer(jQuery("#listadoRecursosMapWrapper"), '#mapaLocBusqRec');
640 redimensionarMapa("mapaLocBusqRec");
641 }
642 });
643
644
645
646 jQuery("#ordenarRecurso").select2();
647 jQuery("#radioBusqueda").select2();
648 }
649
650 /**
651 * Lanza el evento que incica que se desea anadir un favorito a un viaje
652 * indicando el origen y el codigo de recurso.
653 */
654 function addFavouriteLinkListeners() {
655 jQuery('.add-link-text').on('click', function(e){
656 e.preventDefault();
657 var idContent = jQuery(this).attr("data-id-content");
658 var tituloRecurso = jQuery(this).attr("data-title");
659 jQuery(document).trigger({
660 type: "anadirfavorito_event",
661 idContent: idContent,
662 tipoContent:"recurso",
663 titulo: tituloRecurso
664 });
665 });
666 }
667
668 /**
669 * JQuery pagination no soporta la sincroncizacion de dos paginadores, se establece
670 * un workarround para simular este comportamiento.
671 */
672 function synchronizePaginators(){
673 // Se establece en el falso paginador el texto del autentico
674 jQuery('.vistas.pag.fake').html(jQuery('.vistas.pag.real').html());
675 // Se actualiza el texto del falso paginador
676 jQuery('.vistas.pag.fake input').val(jQuery('.vistas.pag.real input').val());
677 // Se establecen listeners en el falso paginador que disparan los eventos
678 // correspondientes en el paginador real
679 jQuery('.vistas.pag.fake .first').on("click", function (e){
680 e.preventDefault();
681 e.stopImmediatePropagation();
682 jQuery('.vistas.pag.real .first').trigger('click');
683 });
684 jQuery('.vistas.pag.fake .previous').on("click", function (e){
685 e.preventDefault();
686 e.stopImmediatePropagation();
687 jQuery('.vistas.pag.real .previous').trigger('click');
688 });
689 jQuery('.vistas.pag.fake .next').on("click", function (e){
690 e.preventDefault();
691 e.stopImmediatePropagation();
692 jQuery('.vistas.pag.real .next').trigger('click');
693 });
694 jQuery('.vistas.pag.fake .last').on("click", function (e){
695 e.preventDefault();
696 e.stopImmediatePropagation();
697 jQuery('.vistas.pag.real .last').trigger('click');
698 });
699 }
700
701
702 filtro = '#PROV:4#STARTINDEX:0#COUNT:50#TPORD:3';
703 if(parametro!=''){
704 filtro += '#TP:' + parametro;
705
706 }
707
708 if(parametroPadre!=''){
709 filtro += '#MTG:' + parametroPadre;
710
711 }
712 if(parametroCoordenadaX!=''){
713 filtro += '#X:' + parametroCoordenadaX;
714
715 }
716 if(parametroCoordenadaY!=''){
717 filtro += '#Y:' + parametroCoordenadaY;
718
719 }
720 console.log("FILTRO_RECURSSSSSos:"+ filtro);
721
722
723 //Para IE la llamada POST la hacemos asi
724 if(jQuery("html").hasClass("ie") ) {
725
726
727 postIE(filtro);
728
729
730 }else{
731
732 jQuery.post("${urlBuscador}",{'filtro':filtro, 'locale':'${locale.toString()}'},function(data,textStatus){
733 if(textStatus=='success'){
734
735 console.log("AQUI:");
736 console.log(data);
737 cargarListadoRecursos(data);
738 actualizarDatosNav("mapaLocBusqRec", data);
739 }
740 },"json");
741
742 }
743
744
745
746 <#if "" != selectorLocalidades>
747 var localidades = ${selectorLocalidades};
748 cargaLocalidades(localidades);
749
750
751 function cargaLocalidades(data) {
752
753
754 //console.log(data);
755 options = '';
756 for(var i=0;i<data.municipios.length;i++) options+="<option value='"+ data.municipios[i].id +"'>"+data.municipios[i].nombre+"</option>";
757 //console.log(options);
758 jQuery("#municipio").append(options).select2();
759 }
760 </#if>
761
762
763
764
765 filtro = '';
766
767
768 <#if "" != selector>
769
770 var categorias = ${selector};
771 //jQuery.post("${urlRecursosvb}",{'locale':'${locale.toString()}'},function(data,textStatus){
772 cargaCategorias(categorias);
773
774 function cargaCategorias(data) {
775
776
777 //console.log(data);
778 options = '';
779 var arrayObjetos=new Array();
780
781 for(var i=0;i<data.datos.length;i++){
782
783 var objetoOption = new Object();
784
785 objetoOption.id=data.datos[i].id;
786 objetoOption.nombre= data.datos[i].nombre;
787
788 var arrayTipos= new Array();
789
790 for(var j=0; j < data.datos[i].tipos.length;j++){
791 var objetoOptionHijo = new Object();
792 objetoOptionHijo.id= data.datos[i].tipos[j].id;
793 objetoOptionHijo.nombre= data.datos[i].tipos[j].nombre;
794 arrayTipos.push(objetoOptionHijo);
795 }
796 if( data.datos[i].metagruposHijos!=null){
797 for(var k=0; k < data.datos[i].metagruposHijos.length;k++){
798 for(var m=0; m < data.datos[i].metagruposHijos[k].tipos.length; m++ ){
799 var objetoOptionHijo2 = new Object();
800 objetoOptionHijo2.id= data.datos[i].metagruposHijos[k].tipos[m].id;
801 objetoOptionHijo2.nombre= data.datos[i].metagruposHijos[k].tipos[m].nombre;
802 arrayTipos.push(objetoOptionHijo2);
803 }
804 }
805 }
806
807 arrayTipos.sort(function (a, b){
808 return (a.nombre > b.nombre ? 1 : a.nombre < b.nombre ? -1 : 0)});
809
810 objetoOption.tipos= arrayTipos;
811 arrayObjetos.push(objetoOption);
812 }
813
814 arrayObjetos.sort(function (a, b){
815 return (a.nombre > b.nombre ? 1 : a.nombre < b.nombre ? -1 : 0)});
816
817 /*
818 for(var i=0;i<arrayObjetos.length;i++){
819 options+="<option value='padre_" +arrayObjetos[i].id +"'>"+arrayObjetos[i].nombre+"</option>";
820
821 //Si unicamente se tiene una categoria hija, esta coincide en nombre con la padre y no se muestra la hija.
822 if(arrayObjetos[i].tipos.length > 1){
823 for(var j=0; j< arrayObjetos[i].tipos.length; j++){
824 options+="<option value='"+ arrayObjetos[i].tipos[j].id +"'> " +arrayObjetos[i].tipos[j].nombre+"</option>";
825 }
826 }
827 }*/
828
829 var categoriasSelect = new Array();
830 for(var i=0; i<arrayObjetos.length; i++){
831 categoriasSelect.push({id: 'padre_' + arrayObjetos[i].id, text: arrayObjetos[i].nombre, children: new Array()});
832
833 //Si unicamente se tiene una categoria hija, esta coincide en nombre con la padre y no se muestra la hija.
834 if(arrayObjetos[i].tipos.length > 1){
835 for(var j=0; j< arrayObjetos[i].tipos.length; j++){
836 categoriasSelect[i].children.push({id: arrayObjetos[i].tipos[j].id, text: arrayObjetos[i].tipos[j].nombre});
837 }
838 }
839 }
840
841 jQuery("#categoria").append(options).select2({multiple:true, data:categoriasSelect});
842
843 $("#categoria").on('change', function (e) {
844 var seleccion = $(this).val().split(",");
845 var longitud = 0;
846
847 if (e.added.children !== undefined){
848 longitud = e.added.children.length;
849
850 for (var i=0; i < longitud; i++) {
851 for (var j=0; j < seleccion.length; j++) {
852 if (e.added.children[i].id == seleccion[j]) {
853 seleccion.splice(j, 1);
854 }
855 }
856 }
857 }
858
859 $(this).select2("val",seleccion);
860 });
861
862 if(parametro!=''){
863 //las categorias vienen separadas por comas
864 var parametroSplit = parametro.split(',');
865 //seteamos las categorias
866 $("#categoria").select2("val", parametroSplit );
867
868 }
869 if(parametroPadre!=''){
870 $("#categoria").select2("val", ['padre_' + parametroPadre + '']);
871
872 }
873 var my_options = $("#categoria");
874
875 /*
876 var options = $('select#categoria option');
877 var arr = options.map(function(_, o) { return { t: $(o).text(), v: o.value }; }).get();
878 arr.sort(function(o1, o2) { return o1.t > o2.t ? 1 : o1.t < o2.t ? -1 : 0; });
879 options.each(function(i, o) {
880 o.value = arr[i].v;
881 $(o).text(arr[i].t);
882 });
883 */
884 }
885 </#if>
886
887
888
889
890
891
892
893 jQuery("#filtroMapaRecursos").submit(function(e){
894 e.preventDefault();
895 //recogida de filtros
896
897 var txtBusca = jQuery("#txtBusca").val();
898 var municipio = jQuery("#municipio").select2("val");
899 var categoria = jQuery("#categoria").select2("val");
900 var ordenar= jQuery("#ordenarRecurso").val();
901
902 //metemos las categorias en un array;
903
904 var arrayCatPadre= new Array();
905 var arrayCatHijo = new Array();
906 var srcCat="";
907 //diferenciamos si tiene el prefijo padre_ o no
908 for(var i=0; i< categoria.length; i++){
909 if(categoria[i].indexOf('padre_') != -1){
910 srcCat = categoria[i].replace(/padre_/g, '');
911 arrayCatPadre.push(srcCat);
912 }else{
913 arrayCatHijo.push(categoria[i]);
914 }
915
916 }
917
918 filtro = '#PROV:4#STARTINDEX:0#COUNT:50#TPORD:3';
919 if(municipio!='') filtro += '#MUN:' + municipio;
920 if(arrayCatHijo!='') filtro += '#TP:' + arrayCatHijo;
921 if(arrayCatPadre!='') filtro += '#MTG:' + arrayCatPadre;
922 if(parametro!='') filtro += '#TP:' + parametro;
923 if(parametroPadre!='') filtro += '#MTG:' + parametroPadre;
924 if(parametroCoordenadaX!='') filtro += '#X:' + parametroCoordenadaX;
925 if(parametroCoordenadaY!='') filtro += '#Y:' + parametroCoordenadaY;
926 if (ordenar=='cercano_ASC') {
927 var radiobusqueda = jQuery("#radioBusqueda").val()
928 filtro+= '#RAD:' + radiobusqueda ;
929 }
930 if(txtBusca!='') {
931 filtro += '#TEXT:' + jQuery.base64.encode(txtBusca);
932 }
933
934 if(filtro=='') filtro='#START_INDEX:0#COUNT:20#TPORD:3#PROV:4';
935
936 //El navegador es IE no se llama al metodo post
937 if(jQuery("html").hasClass("ie") ) {
938
939 postIE(filtro);
940
941
942 }else{
943 jQuery.post("${urlBuscador}",{'filtro':filtro, 'locale':'${locale.toString()}'},function(data,textStatus){
944 if(textStatus=='success'){
945 cargarListadoRecursos(data);
946 actualizarDatosNav("mapaLocBusqRec", data);
947 }
948 },"json");
949 }
950 });
951
952 var restablecerEsOrigenBusqueda = false;
953 jQuery('.restablecer').bind('click',function(e){
954 e.preventDefault();
955 jQuery("#txtBusca").val('');
956 jQuery("#municipio").select2("val","");
957 jQuery("#categoria").select2("val","");
958 restablecerEsOrigenBusqueda = true;
959 jQuery("#filtroMapaRecursos").trigger("submit");
960 });
961
962
963 //Cuando tiene el foco el campo de busqueda borra el mensaje
964 $('#txtBusca').focusin(function(){
965 jQuery(this).attr('placeholder','');
966 });
967
968 $('#txtBusca').focusout(function(){
969 jQuery(this).attr('placeholder','<@liferayUi["message"] key="portalweb.templates.listadoRecursos.plantillaBuscador" />');
970 });
971
972 function postIE(filtro){
973
974
975 var xmlhttp;
976 if (window.XMLHttpRequest)
977 {// code for IE7+, Firefox, Chrome, Opera, Safari
978 xmlhttp=new XMLHttpRequest();
979 }
980 else
981 {// code for IE6, IE5
982 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
983 }
984
985 xmlhttp.open("POST","${urlBuscador}",true);
986 xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
987 xmlhttp.send("filtro=" + filtro + "&locale':'${locale.toString()}");
988
989
990 xmlhttp.onreadystatechange=function()
991 {
992 if (xmlhttp.readyState==4 && xmlhttp.status==200)
993 {
994
995 var doc1 = JSON.parse(xmlhttp.responseText);
996 cargarListadoRecursos(doc1);
997 actualizarDatosNav("mapaLocBusqRec", doc1);
998 }
999 }
1000
1001 }
1002
1003
1004 function ajaxValoracion( opcion, rel, codigo) {
1005 jQuery.post("${urlValorar}",{'opcion':opcion, 'codigo':codigo, 'rel':rel},function(data,textStatus){
1006 if(textStatus=='success'){
1007
1008 cargarValoracion(data,codigo, rel);
1009
1010
1011 }
1012 },"json");
1013 }
1014
1015 function cargarValoracion(data, codigo, rel) {
1016
1017 var titulo = rel;
1018 var keyVote = '<@liferayUi["message"] key="vote" />';
1019 var keyVotes = '<@liferayUi["message"] key="votes" />';
1020 var average = '<@liferayUi["message"] key="average" />';
1021 var html = "<div class=\"rating-label\">"+average+" (";
1022 html += data.valoracion.numeroVotaciones+" ";
1023 html += (data.valoracion.numeroVotaciones==1)?keyVote:keyVotes;
1024 html += ")";
1025 html +="</div>";
1026
1027
1028
1029 for (var i = 1; i <= 5; i++)
1030 {
1031
1032 var iconoEstrella = (i<=data.valoracion.valoracionMedia)?"icon-star":"icon-star-empty";
1033 html+="<span class=\"dont-intercept rating-element "+iconoEstrella+"\" rel=\""+ i +"\" title=\""+titulo+"\" ></span>";
1034
1035 }
1036
1037 //sustituye el html
1038 $("#" + codigo).html(html);
1039
1040
1041 }
1042
1043
1044</script>
1045</div>