DEIALDIEN BILATZAILEA

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

EGOERA

Errorea gertatu da txantiloia prozesatzerakoan.
Negative range start index (-10) isn't allowed for a range used for slicing.
The blamed expression:
==> begin..(end-one)  [in template "842907#842945#2677535" at line 165, column 46]

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