DEIALDIEN BILATZAILEA

Hemen Bizkaian jende gaztearentzako deialdiak aurki ditzakezu, Bizkaiko Foru Aldundiak egin edo finantzatzen baditu.

EGOERA

Errorea gertatu da txantiloia prozesatzerakoan.
Range start index 20 is out of bounds, because the sliced sequence has only 19 element(s). (Note that indices are 0-based).
The blamed expression:
==> begin..(totalEle-one)  [in template "842907#842945#2677535" at line 174, column 46]

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign finalEntries = finalEntries[b...  [in template "842907#842945#2677535" at line 174, column 9]
----
1<#--FTL de funciones genericas--> 
2<#assign funcionesCustomId = layout.getGroup().getExpandoBridge().getAttribute("iybg-ftl-funciones")> 
3<#include "${templatesPath}/${funcionesCustomId}"> 
4 
5<#-- Servicios --> 
6<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
7<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
8<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")> 
9<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") > 
10<#assign searcher = serviceLocator.findService("net.juventud.buscador.categorias.service.SearchService")> 
11<#assign urlEncoder = staticUtil["java.net.URLEncoder"]> 
12 
13<#-- Variables --> 
14<#assign zero = getterUtil.getInteger("0")> 
15<#assign one = getterUtil.getInteger("1")> 
16<#assign currentPag = one> 
17<#assign delta = getterUtil.getLong("10")> 
18<#assign renderURL = themeDisplay.getURLCurrent()> 
19<#assign hayParams = false> 
20<#if renderURL?index_of("?") gte 0> 
21	<#assign hayParams = true> 
22</#if> 
23<#assign params = renderURL?split("&")> 
24<#assign queryBusqueda = ""> 
25<#assign selectedEstado = ""> 
26<#assign fechaHasta = ""> 
27<#assign filtro = ""> 
28<#assign completeCurrentRedirecUrl = urlEncoder.encode(themeDisplay.getPortalURL() + renderURL,"UTF-8")> 
29<#assign totalParams = params?size> 
30<#assign selectedCategory = ""> 
31 
32<#list params as param> 
33 
34        <#assign paramLength = getterUtil.getInteger(param?length)> 
35        <#assign equalsIndex = zero> 
36        <#if param?index_of("=") != -1> 
37            <#assign equalsIndex =  getterUtil.getInteger(param?index_of("="))> 
38            <#assign equalsIndex =  equalsIndex + one> 
39        </#if> 
40        <#if param?index_of("zx=") != -1> 
41            <#assign currentzx = param?substring(equalsIndex,paramLength)> 
42            <#assign oldParam = "?zx=" + currentzx> 
43            <#assign renderURL = renderURL?replace(oldParam, "")> 
44            <#assign oldParam = "&zx=" + currentzx> 
45            <#assign renderURL = renderURL?replace(oldParam, "")> 
46            <#assign totalParams = params?size - 1> 
47        </#if> 
48        <#if param?contains("queryBusqueda")> 
49            <#assign replaceQueryBusqueda = param?substring(equalsIndex,paramLength)> 
50            <#assign queryBusqueda =replaceQueryBusqueda?replace("%2C", ",")> 
51        </#if> 
52        <#if param?contains("selectedEstado")> 
53            <#assign selectedEstado = param?substring(equalsIndex,paramLength)> 
54        </#if>         
55        <#if param?contains("fechaHasta")> 
56            <#assign replaceFechaHasta = param?substring(equalsIndex,paramLength)> 
57            <#assign fechaHasta =replaceFechaHasta?replace("%2F", "/")> 
58        </#if> 
59        <#if param?contains("page")> 
60            <#assign currentPag = getterUtil.getLong(param[equalsIndex..(paramLength-1)])> 
61            <#assign oldParam = "&page=" + currentPag> 
62            <#assign renderURL = renderURL?replace(oldParam, "")> 
63            <#assign oldParam = "?page=" + currentPag> 
64            <#assign renderURL = renderURL?replace(oldParam, "")> 
65            <#assign totalParams = params?size - 1> 
66        </#if> 
67        <#if param?contains("catId")> 
68					<#if params?size == 1> 
69							<#assign hayParams = false> 
70						</#if> 
71            <#if equalsIndex != 0> 
72                <#assign filtro = param[equalsIndex..(paramLength-1)]> 
73                <#assign selectedCategory = filtro> 
74            </#if> 
75            <#assign oldParam = "&catId="+filtro> 
76            <#assign renderURL = renderURL?replace(oldParam, "")> 
77            <#assign oldParam = "?catId="+filtro> 
78            <#assign renderURL = renderURL?replace(oldParam, "")> 
79            <#assign oldParam = "&catId"> 
80            <#assign renderURL = renderURL?replace(oldParam, "")> 
81            <#assign oldParam = "?catId"> 
82            <#assign renderURL = renderURL?replace(oldParam, "")> 
83            <#assign totalParams = params?size - 1> 
84        </#if>           
85</#list> 
86 
87<#if searcher?exists> 
88        <#assign finalEntries = searcher.searchContentsByQB(entries, queryBusqueda, filtro)> 
89        <#assign finalEntries = searcher.filterContents(finalEntries, selectedEstado,fechaHasta,locale)> 
90<#else> 
91    <#assign finalEntries = entries> 
92</#if> 
93 
94<#assign beginIndex = currentPag - one> 
95<#assign begin = delta * beginIndex> 
96 
97<#assign end = begin + delta> 
98 
99<#assign totalEntriesSize = finalEntries?size> 
100<#assign totalPag = getterUtil.getInteger((finalEntries?size)/delta)> 
101 
102<#assign totalPagMod = finalEntries?size%delta> 
103 
104<#if (finalEntries?size > delta) && totalPagMod!=0> 
105    <#assign totalPag = totalPag + one> 
106</#if> 
107 
108<#assign totalEle = finalEntries?size> 
109<#assign renderPam = "&page="> 
110<#if !renderURL?contains("?")> 
111    <#assign renderPam = "?page="> 
112</#if> 
113<#assign firstURL = renderURL + renderPam + one> 
114<#assign lastURL = renderURL + renderPam + totalPag> 
115 
116<#-- Tener encuenta las categorias --> 
117<#if selectedCategory!=""> 
118    <#assign selectedCategoryText = "&catId=" + selectedCategory >  
119    <#assign firstURL = firstURL + selectedCategoryText> 
120    <#assign lastURL = lastURL + selectedCategoryText> 
121</#if> 
122 
123<#if (totalPag > one)> 
124    <#if (currentPag < totalPag)> 
125        <#assign nextValue = currentPag + one> 
126    <#else> 
127        <#assign nextValue = totalPag> 
128    </#if> 
129 
130    <#if (currentPag > one)> 
131        <#assign previousValue = currentPag - one> 
132    <#else> 
133        <#assign previousValue = one> 
134    </#if> 
135<#else> 
136    <#assign nextValue = one> 
137    <#assign previousValue = one> 
138</#if> 
139 
140<#assign nextURL = renderURL + renderPam + nextValue> 
141<#assign previousURL = renderURL + renderPam + previousValue> 
142<#-- Tener encuenta las categorias --> 
143<#if selectedCategory!=""> 
144    <#assign selectedCategoryText = "&catId=" + selectedCategory >  
145    <#assign nextURL = nextURL + selectedCategoryText> 
146    <#assign previousURL = previousURL + selectedCategoryText> 
147</#if> 
148 
149<#assign message = delta> 
150<#assign init = (delta * (currentPag - one)) + one> 
151<#assign final = delta * currentPag> 
152 
153<#if (totalPag > one)> 
154    <#if (end < totalEle)> 
155        <#assign parameters = [init, end, totalEle]> 
156    <#else> 
157        <#assign parameters = [init, totalEle, totalEle]> 
158    </#if> 
159     
160    <#assign message = languageUtil.format(locale, "showing-x-x-of-x-results", parameters)> 
161<#else> 
162    <#assign parameters = [totalEle]> 
163    <#if (totalEle == one)> 
164        <#assign message = languageUtil.format(locale, "showing-x-result", parameters)> 
165    <#else> 
166        <#assign message = languageUtil.format(locale, "showing-x-results", parameters)> 
167    </#if> 
168</#if> 
169 
170<#if (finalEntries?size > zero)> 
171    <#if (end < totalEle)> 
172        <#assign finalEntries = finalEntries[begin..(end-one)]> 
173    <#else> 
174        <#assign finalEntries = finalEntries[begin..(totalEle-one)]> 
175    </#if> 
176</#if> 
177 
178<div class="iybg-container" id="resultadosConvocatorias" aria-live="polite"> 
179 
180<h2 class="red-separator"><span class="iy-text-color-red iy-text-size-XL">${totalEle}</span> 
181    <#if totalEle == one> 
182        <@liferay.language key="iybg.convocatorias.buscador.convocatoria-encontrada-upper"/> 
183    <#else> 
184        <@liferay.language key="iybg.convocatorias.buscador.convocatorias-encontradas-upper"/> 
185    </#if> 
186</h2> 
187 
188<#-- navegacion por categorias --> 
189<nav class="nav type01"> 
190    <ul class="navbar-nav"> 
191        <li><a id ="todas" class="nav-link active" href="${renderURL}"><@liferay.language key="iybg.todas" /></a></li> 
192            <#assign convocatoriasVocabularyName = "BG-Convocatorias" /> 
193            <#assign categories = assetVocabularyLocalService.getGroupVocabulary(themeDisplay.getCompanyGroupId(), convocatoriasVocabularyName).getCategories() /> 
194 
195            <#list categories as category> 
196                <#assign cont = zero> 
197                <#assign assetsEntries = getArticlesByCategoryId(entries,queryBusqueda,category.getCategoryId())> 
198                <#assign assetsEntries = getArticlesByStateDate(assetsEntries,selectedEstado,fechaHasta,locale)> 
199                <#assign cont = assetsEntries?size> 
200 
201                <#if hayParams> 
202                    <li> 
203                        <#if (cont > zero)> 
204                            <a id="${category.getCategoryId()?c}" class="nav-link" href="${renderURL}&catId=${category.getCategoryId()?c}">${category.getTitle(locale)}(${cont})</a> 
205                        <#else> 
206                           <span class="not-link"> ${category.getTitle(locale)}</span> 
207                        </#if> 
208                    </li> 
209                <#else> 
210                    <li> 
211                        <#if (cont > zero)> 
212                            <a id="${category.getCategoryId()?c}" class="nav-link" href="${renderURL}?catId=${category.getCategoryId()?c}">${category.getTitle(locale)}(${cont})</a> 
213                        <#else> 
214                            <span class="not-link">${category.getTitle(locale)}</span> 
215                        </#if> 
216                    </li>                 
217                </#if> 
218            </#list> 
219    </ul> 
220</nav> 
221<#-- END Categorias --> 
222 
223<div class="row"> 
224<#if finalEntries?size != zero> 
225     
226        <div class="col-md-8 col-centered"> 
227            <ul class="bipo_participa_estados list-group list-type02"> 
228                <#list finalEntries as curEntry> 
229                    <#assign assetRenderer = curEntry.getAssetRenderer()> 
230                    <#assign journalArticle = assetRenderer.getAssetObject()> 
231                    <#assign renderer = curEntry.getAssetRenderer()> 
232                    <#assign className = renderer.getClassName()> 
233                         
234                    <#assign layoutUuid = journalArticle.getLayoutUuid()> 
235                    <#assign modifiedDate = journalArticle.getModifiedDate()>  
236                    <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry) /> 
237                    <#if !stringUtil.equalsIgnoreCase("showFullContent", assetLinkBehavior?string)> 
238                        <#assign viewURL = renderer.getURLViewInContext(renderRequest, renderResponse, viewURL) /> 
239                    </#if>             
240 
241                    <#--Solo se usa si se va al asset publisher directamente 
242                    <#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")/> 
243                    <#assign group = groupLocalService.getGroup(groupId)/> 
244                    <#assign groupFriendlyURL = group.getFriendlyURL() />             
245                    <#assign urlViewContext = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + groupFriendlyURL + "/detalle-convocatorias/-/asset_publisher/B0ZPAtZFKdIv/content/" + journalArticle.getUrlTitle()> 
246                    --> 
247 
248                    <#--Obtenemos templateKey en funcion del nombre de la plantilla--> 
249                    <#-- Por accesibilidad hay que hace que solo el titulo sea el enlace, no todo. 
250                    <#assign curTemplateKey=getTemplateKeyByTemplateName(themeDisplay.getCompanyGroupId(),"BG-Convocatoria listado")/>             
251 
252                    <a href="${viewURL}?redirectUrl=${completeCurrentRedirecUrl}" class="list-group-item" title='<@liferay.language key="iybg.convocatorias.listado.ir-detalle"/>' tabindex="-1"> 
253                        <@liferay_journal["journal-article"] 
254                                articleId=journalArticle.getArticleId() 
255                                ddmTemplateKey=curTemplateKey 
256                                groupId=journalArticle.getGroupId() /> 
257                    </a> 
258                    --> 
259 
260 
261                    <#assign documentcurrentArticle = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) > 
262                    <#assign rootElementcurrentArticle = documentcurrentArticle.getRootElement() > 
263                    <#assign currentArticleTitulo = saxReaderUtil.createXPath("dynamic-element[@name='titulo']/dynamic-content").selectSingleNode(rootElementcurrentArticle) > 
264                    <#assign currentArticleFechaCaducidad = saxReaderUtil.createXPath("dynamic-element[@name='fecha_caducidad']/dynamic-content").selectSingleNode(rootElementcurrentArticle) > 
265                    <#assign currentArticleNombreConvocante = saxReaderUtil.createXPath("dynamic-element[@name='ConvocanteFieldSet']/dynamic-element[@name='ConvocanteFieldSetFieldSet']/dynamic-element[@name='nombreConvocante']/dynamic-content").selectSingleNode(rootElementcurrentArticle).getStringValue()  > 
266 
267                    <#assign hashFecha=""> 
268                    <#if validator.isNotNull(currentArticleFechaCaducidad.getData())> 
269                        <#assign current_date_Data = .now?date?string('yyyy-MM-dd')> 
270                        <#assign current_date_DateObj = dateUtil.parseDate("yyyy-MM-dd", current_date_Data, locale)> 
271                        <#assign fecha_caducidad_Data = getterUtil.getString(currentArticleFechaCaducidad.getData())> 
272                        <#assign fecha_caducidad_DateObj = dateUtil.parseDate("yyyy-MM-dd", fecha_caducidad_Data, locale)> 
273                        <#assign fecha_caducidad7_Data = (fecha_caducidad_DateObj?long - (7 * 86400000))?number_to_date?string("yyyy-MM-dd")> 
274                        <#assign fecha_caducidad7_DateObj = dateUtil.parseDate("yyyy-MM-dd", fecha_caducidad7_Data, locale)> 
275                        <#assign hashFecha="OK"> 
276                    </#if> 
277 
278                    <li class="list-group-item" tabindex="0"> 
279 
280                        <div class="row"> 
281                         
282                                <div class="col-md-3"> 
283                                    <p> 
284 
285                                        <#assign convocatoriasVocabulary = assetVocabularyLocalService.getGroupVocabulary(themeDisplay.getCompanyGroupId(), convocatoriasVocabularyName) /> 
286                                        <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(journalArticle.resourcePrimKey)) > 
287 
288                                        <#list categories as category> 
289                                            <#if stringUtil.equalsIgnoreCase(category.vocabularyId?string,convocatoriasVocabulary.getVocabularyId()?string)> 
290                                                <span class="fs-1_2 bold tc-rojo">${category.getTitle(locale)?upper_case}</span> 
291                                            </#if> 
292                                        </#list> 
293 
294                                        <#if validator.isNotNull(hashFecha)> 
295                                            <#if (current_date_DateObj?date >= fecha_caducidad7_DateObj?date) && (current_date_DateObj?date <= fecha_caducidad_DateObj?date)> 
296                                                <span class="clearfix"><span class="red-outline"><@liferay.language key="iybg.convocatorias.listado.ultimos-dias-upper"/></span></span> 
297                                            </#if> 
298                                        </#if> 
299                                    </p> 
300                                </div> 
301                                 
302                                     
303                                <div class="col-md-9"> 
304                                    <#if currentArticleTitulo.getData()?has_content> 
305                                        <p><a href="${viewURL}?redirectUrl=${completeCurrentRedirecUrl}" title='<@liferay.language key="iybg.convocatorias.listado.ir-detalle"/>' tabindex="-1"><span class="bold">${currentArticleTitulo.getData()}</span></a></p> 
306                                    </#if> 
307 
308                                    <#if validator.isNotNull(hashFecha)> 
309                                        <p class="clearfix"> 
310                                        <#if (current_date_DateObj?date > fecha_caducidad_DateObj?date)> 
311                                            <span class="bipo_flechaderecha"><@liferay.language key="iybg.convocatorias.cerrado-upper"/></span> 
312                                        <#else> 
313                                            <span class="bipo_flechaderecha back-rojo"><@liferay.language key="iybg.convocatorias.abierto-upper"/></span> 
314                                        </#if>             
315                                         
316                                        <#if (current_date_DateObj?date > fecha_caducidad_DateObj?date)> 
317                                            <#-- Formato 1: dd/MM/yyyy --> 
318                                            <span class="cerrada bipo_participa_fecha"><@liferay.language key="iybg.convocatorias.plazo-finalizado"/> ${formatFecha (fecha_caducidad_Data, 1, locale)}</span> 
319                                        <#else> 
320                                            <#-- Formato 1: dd/MM/yyyy --> 
321                                            <span class="bipo_participa_fecha"><@liferay.language key="iybg.convocatorias.hasta"/> ${formatFecha (fecha_caducidad_Data, 1, locale)}</span> 
322                                        </#if> 
323                                        </p> 
324                                    </#if> 
325 
326                                    <#if currentArticleNombreConvocante?has_content> 
327                                        <p class="texto-convocantes">${currentArticleNombreConvocante}</p> 
328                                    </#if> 
329                                </div>    
330                        </div> 
331                    </li>                     
332                </#list> 
333            </ul> 
334        </div> 
335 
336		<#if (totalEntriesSize > delta)> 
337			<div class="taglib-page-iterator" > 
338				<div class="clearfix lfr-pagination" > 
339				   <#-- <small>${message}</small>--> 
340						<ul class="pager pager lfr-pagination-buttons bg-paginador"> 
341							<#if (currentPag == one)> 
342								<li class="disabled first"> 
343									<a href="">&larr; <@liferay.language key="first" /></a></li> 
344							<#else> 
345								<li class="first"> 
346									 <a href="${firstURL}">&larr; <@liferay.language key="first" /></a></li> 
347							</#if> 
348							 
349							<#if (currentPag == one)> 
350								<li class="disabled">    
351								   <a href=""><@liferay.language key="previous" /></a></li> 
352							<#else> 
353								<li> 
354									<a href="${previousURL}"><@liferay.language key="previous" /></a></li> 
355							</#if> 
356							 
357								 
358							<#if (currentPag == totalPag)> 
359								<li class="disabled"> 
360									<a href=""><@liferay.language key="next" /></a></li> 
361							<#else> 
362								<li> 
363									<a href="${nextURL}"><@liferay.language key="next" /></a></li> 
364							</#if> 
365								 
366							<#if (currentPag == totalPag)> 
367								<li class="disabled last"> 
368									<a href=""><@liferay.language key="last" /> &rarr;</a></li> 
369							<#else> 
370								<li class="last"> 
371									<a href="${lastURL}"><@liferay.language key="last" /> &rarr;</a></li> 
372							</#if> 
373						</ul> 
374				</div> 
375			</div> 
376		</#if>   
377	<#else> 
378		<div class="alert alert-info type01"> 
379				<p class="flex-container"><span class="bipoicon icon-calendar"></span> <span><@liferay.language key="iybg.convocatorias.listado.no-results"/></span></p> 
380		</div> 
381	</#if> 
382 
383	</div> 
384</div> 
385<#function getArticlesByCategoryId entries queryBusqueda categoriId> 
386    <#assign categoriesEntries = searcher.searchContentsByQB(entries, queryBusqueda, categoriId?c)> 
387    <#return categoriesEntries> 
388</#function> 
389 
390<#function getArticlesByStateDate entries selectedEstado fechaHasta locale> 
391    <#assign categoriesEntries = searcher.filterContents(entries, selectedEstado,fechaHasta,locale)> 
392    <#return categoriesEntries> 
393</#function> 
394 
395<script type="text/javascript"> 
396 
397    $(function() { 
398        // Handler for .ready() called. 
399        var isFiltro=String(${filtro}); 
400         
401        $("ul.navbar-nav li a").removeClass("active"); 
402        if (isFiltro==""){ 
403            $("#todas").addClass("active"); 
404        }else{ 
405            $("#"+isFiltro).addClass("active"); 
406
407     
408    }); 
409 
410</script>