Konkursy - Program Strategiczny Inicjatywa Doskonałości w Uniwersytecie Jagiellońskim

Pomiń baner

Logotyp Una Europa

Logotyp Uczelnia Badawcza Inicjatywa Doskonałości

 

Wystąpił błąd podczas przetwarzania szablonu.
Java method "pl.edu.uj.portal.articles.util.impl.CustomAssetHelperImpl.getAssetsFromGroups(long[], String, long[], long[], long[], long[], String, String, String, String, Date, Date, Date, Date, Date, int, int)" threw an exception when invoked on pl.edu.uj.portal.articles.util.impl.CustomAssetHelperImpl object "pl.edu.uj.portal.articles.util.impl.CustomAssetHelperImpl@707cdd1a"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign assetsOnDay = ujCustomAssetHe...  [in template "20096#20121#SKORKA2015-KALENDARZ" at line 503, column 5]
----
1<style> 
2    .post-excerpt__add-to-calendar { 
3        background-image: -owg-linear-gradient(top, transparent 0%, rgba(0, 0, 0, 0.65) 100%); 
4        background-image: -webkit-linear-gradient(top, transparent 0%, rgba(0, 0, 0, 0.65) 100%); 
5        background-image: -webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba(0, 0, 0, 0.65))); 
6        background-image: linear-gradient(top, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0.65) 100%); 
7    } 
8    @media all and (min-width:480px){ 
9        html .post-excerpt__image img.thumb {  width: 300px; } 
10    } 
11 
12    html .calendar__prev, html .calendar__next { 
13        border: none; 
14        background: none; 
15    } 
16 
17    .chosen-container-active{ 
18        border: 1px solid #333; 
19    } 
20    #high-contrast .chosen-container-active{ 
21        border: 1px solid #fff; 
22    } 
23 
24    html .calendar__day { 
25        color: #0077b3; 
26        border: none; 
27    } 
28 
29    button.post-excerpt-group__title { 
30        width:100%; 
31        text-align: left; 
32        border: none; 
33        margin: 0; 
34        background: #f4f4f4; 
35        display: inline-block; 
36        vertical-align: middle; 
37        padding: 15px 45px 15px 30px; 
38        font-style: normal; 
39        text-transform: unset; 
40        color: #0077b3; 
41        clear: both; 
42        -webkit-transition: all 0.3s cubic-bezier(0.455, 0.03, 0.515, 0.955); 
43        transition: all 0.3s cubic-bezier(0.455, 0.03, 0.515, 0.955); 
44    } 
45 
46    #high-contrast button.post-excerpt-group__title { 
47        color: #ffe800; 
48        background: #000; 
49    } 
50    #high-contrast button.post-excerpt-group__title:hover, #high-contrast button.post-excerpt-group__title:focus { 
51        color: #000; 
52        background: #ffe800; 
53    } 
54</style> 
55 
56<#assign sciezkaObrazkow = ''/> 
57<#if request?? && request?has_content> 
58    <#assign 
59    sciezkaObrazkow = themeDisplay.getPathThemeImages() 
60    longGroupId = themeDisplay.getScopeGroupId() 
61    currentUrl = themeDisplay.getURLCurrent() 
62    currentRenderUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() 
63    portletId = themeDisplay.getPortletDisplay().getId() 
64    /> 
65</#if> 
66 
67<#if sciezkaObrazkow?has_content || sciezkaObrazkow?matches(".*/uj-lift-theme/images.*")> 
68 
69<#-- DATES--> 
70    <#assign day = ''/> 
71    <#if renderRequest.getOriginalHttpServletRequest().getParameter('day')??> 
72        <#assign day = renderRequest.getOriginalHttpServletRequest().getParameter('day')?html/> 
73    </#if> 
74 
75    <#if !day?has_content> 
76        <#assign date = dateUtil.parseDate("yyyyMMdd", .now?string("yyyyMMdd"), locale)/> 
77    <#else> 
78        <#assign date = dateUtil.parseDate("yyyyMMdd", day, locale)/> 
79    </#if> 
80 
81    <#assign 
82    strDateSelected = date?string("yyyyMMdd") 
83 
84    currentDay = date 
85    m = currentDay?long 
86    k = m - 1000 
87    secondBeforeCurrentDay = k?number_to_date 
88    j = m + 86400000 
89    nextDay = j?number_to_date 
90    w = m - 86400000 
91    prevDay = w?number_to_date 
92    /> 
93 
94<#-- preparing address with day --> 
95 
96    <#assign 
97    dayNumber = date?string("d") 
98    dayName = dateUtil.getDate(date, "EEEE", locale) 
99    monthNumber = date?string("M") 
100    monthNumberToJavascript = monthNumber?number - 1 
101    monthName = dateUtil.getDate(date, "MMMM", locale) 
102    year = date?string("yyyy") 
103    strDate = date?string("dd.MM.yyyy") 
104    /> 
105 
106<#-- end of preparing DATES --> 
107 
108    <#assign 
109    defaultImgUrl = "${sciezkaObrazkow}/default_thumbs/ujThemeArticleList-300x230.jpg" 
110    langAll = htmlUtil.escape(languageUtil.get(locale, "all")) 
111    langFilter = htmlUtil.escape(languageUtil.get(locale, "filter")) 
112    langViewAll = htmlUtil.escape(languageUtil.get(locale, "view-all")) 
113    langReadMore = htmlUtil.escape(languageUtil.get(locale, "read-more")) 
114    langBackToTop = htmlUtil.escape(languageUtil.get(locale, "back-to-top")) 
115    langSelected = htmlUtil.escape(languageUtil.get(locale, "selected")) 
116    langDay = htmlUtil.escape(languageUtil.get(locale, "day")) 
117    langSoonEvents = htmlUtil.escape(languageUtil.get(locale, "uj-lift-theme.soon-events")) 
118    langOngoingEvents = htmlUtil.escape(languageUtil.get(locale, "uj-lift-theme.ongoing-events")) 
119    langAddNewEvent = htmlUtil.escape(languageUtil.get(locale, "add-new-event")) 
120    langCalendar = htmlUtil.escape(languageUtil.get(locale, "calendar")) 
121    langSkipToEvents = htmlUtil.escape(languageUtil.get(locale, "uj-lift-theme.skip-to-events")) 
122    /> 
123 
124<#-- Structure variables --> 
125    <#assign 
126    titleData = "" 
127    typeData = "" 
128    categoriesData = "" 
129    omitCategoriesData = "" 
130    tagsData = "" 
131    omitTagsData = "" 
132    groupIdsData = "" 
133    noResultsData = "" 
134    hideData = "" 
135    formAddEventUrlData = "" 
136    /> 
137 
138    <#if (title.getData())??> 
139        <#assign titleData = title.getData()/> 
140    </#if> 
141    <#if (type.getData())??> 
142        <#assign typeData = type.getData()?upper_case/> 
143    </#if> 
144    <#if (categories.getData())??> 
145        <#assign categoriesData = categories.getData()/> 
146    </#if> 
147    <#if (omitCategories.getData())??> 
148        <#assign omitCategoriesData = omitCategories.getData()/> 
149    </#if> 
150    <#if (tags.getData())??> 
151        <#assign tagsData = tags.getData()/> 
152    </#if> 
153    <#if (omitTags.getData())??> 
154        <#assign omitTagsData = omitTags.getData()/> 
155    </#if> 
156    <#if (groupIds.getData())??> 
157        <#assign groupIdsData = groupIds.getData()/> 
158    </#if> 
159    <#if (noResults.getData())??> 
160        <#assign noResultsData = noResults.getData()/> 
161    </#if> 
162    <#if (hide.getData())??> 
163        <#assign hideData = hide.getData()/> 
164    </#if> 
165    <#if (formAddEventUrl.getData())??> 
166        <#assign formAddEventUrlData = formAddEventUrl.getData()/> 
167    </#if> 
168 
169    <#assign urlWithoutParameters = currentRenderUrl?replace('\\?.*', '', 'r')/> 
170    <#assign url = currentRenderUrl/> 
171 
172    <#assign groupFilter = ''/> 
173    <#if renderRequest.getOriginalHttpServletRequest().getParameter('groupFilter')??> 
174        <#assign groupFilter = renderRequest.getOriginalHttpServletRequest().getParameter('groupFilter')?html/> 
175    </#if> 
176    <#if groupFilter?has_content> 
177        <#assign url = httpComponentsUtil.addParameter(urlWithoutParameters, 'groupFilter', groupFilter)/> 
178    </#if> 
179 
180    <#if strDateSelected?has_content> 
181        <#assign url = httpComponentsUtil.addParameter(urlWithoutParameters, 'day', strDateSelected)/> 
182    </#if> 
183 
184<#-----------MACRO-----------> 
185    <#macro assetsLoop assets open> 
186        <div id="accordionGroup" class="Accordion" data-allow-multiple data-allow-toggle> 
187            <#list assets as asset> 
188                <#assign counter = asset?counter/> 
189                <#assign model = 'com.liferay.journal.model.JournalArticle'/> 
190                <#assign etykiety = assetTagService.getTags(model, getterUtil.getLong(asset.getClassPK()))/> 
191 
192                <#assign 
193                articleId = "" 
194                articleTitle = "" 
195                articleDescription = "" 
196                artImgJson = "" 
197                imgDescription = "" 
198                articleGroupId = "" 
199 
200                articleResource = journalArticleResourceService.getArticleResource(asset.getClassPK()) 
201                article = journalArticleService.getArticle(articleResource.getGroupId(), articleResource.getArticleId()) 
202                articleGroupId = article.getGroupId() 
203                articleId = article.getArticleId() 
204                /> 
205 
206                <#assign artStructureValues = ujJournalArticleHelper.getFormValues(article, portletRequest)/> 
207 
208                <#assign articleTitle = artStructureValues["tytul"]!""/> 
209                <#if !articleTitle?has_content> 
210                    <#assign articleTitle = article.getTitle()/> 
211                </#if> 
212                <#assign articleTitle = articleTitle?replace('\"', '&quot;')/> 
213 
214                <#assign articleDescription = artStructureValues["streszczenie"]!""/> 
215                <#if !articleDescription?has_content> 
216                    <#assign articleDescription = article.getDescription()/> 
217                </#if> 
218                <#assign articleDescription = articleDescription?replace('\"','&quot;')/> 
219 
220                <#assign artImgJson = ''/> 
221                <#if artStructureValues["grafikaLista"]??> 
222                    <#assign artImgJson = artStructureValues["grafikaLista"]/> 
223                </#if> 
224 
225                <#assign 
226                startDate = artStructureValues["startDate"]!"" 
227                endDate = artStructureValues["endDate"]!"" 
228                eventStartDate = "" 
229                eventEndDate = "" 
230                eventStartTimeUTC = "" 
231                eventEndTimeUTC = "" 
232                /> 
233 
234                <#if startDate?has_content> 
235                    <#assign articleStartDate = dateUtil.parseDate("yyyyMMdd", startDate, locale)/> 
236                    <#assign eventStartDate = dateUtil.getDate(articleStartDate, "dd.MM.yyyy", locale)/> 
237                </#if> 
238 
239                <#if endDate?has_content> 
240                    <#assign articleEndDate = dateUtil.parseDate("yyyyMMdd", endDate, locale)/> 
241                    <#assign eventEndDate = dateUtil.getDate(articleEndDate, "dd.MM.yyyy", locale)/> 
242                </#if> 
243            <#-- adding parameter day --> 
244                <#assign articleUrl = htmlUtil.escape("${urlWithoutParameters}/-/journal_content/${portletId}/${articleGroupId}/${articleId}")/> 
245 
246                <div class="post-excerpt-group <#if open>post-excerpt-group--open</#if> jsToggleContainer"> 
247 
248                    <button  class="Accordion-trigger post-excerpt-group__title jsToggleTrigger" 
249                             id="accordion-header-${counter}" 
250                             aria-controls="accordion-panel-${counter}"> 
251                        <#-- adding parameter day --> 
252                        <#if etykiety?size gt 0> 
253                            <#list etykiety as etykieta> 
254                                <#if etykieta.getName() == 'kultura'> <i class="icon icon-maska"></i></#if> 
255                                <#if etykieta.getName() == 'konkurs'> <i class="icon icon-medal"></i></#if> 
256                                <#if etykieta.getName() == 'konferencja'> <i class="icon icon-mikrofon"></i></#if> 
257                                <#if etykieta.getName() == 'wykład'> <i class="icon icon-ksiazka"></i></#if> 
258                            </#list> 
259                        </#if> 
260                        <span>${articleTitle}</span> 
261                    </button> 
262                    <#assign unfold = false/> 
263                    <div class="Accordion-panel post-excerpt-group__content jsToggleContent" id="accordion-panel-${counter}" 
264                         role="region" 
265                         aria-labelledby="accordion-header-${counter}" 
266                            <#if unfold == true> 
267                                style="display:block;" 
268                            </#if> 
269                    > 
270 
271                        <div class="post-excerpt post-excerpt--calendar"> 
272                            <#if artImgJson?has_content> 
273                                <div class="post-excerpt__image jsAddToCalendarContainer"> 
274 
275                                    <a href="#" title="${langCalendar}" class="post-excerpt__add-to-calendar jsAddToCalendarOpen"> 
276                                        <span class="post-excerpt__add-to-calendar-plus"></span> 
277                                        ${langCalendar} 
278                                    </a> 
279 
280                                    <#-- TWORZENIE LINKOW DO EKSPORTU KALENDARZA: POCZATEK --> 
281                                    <#assign eventLocation = artStructureValues["miejsce"]!""/> 
282                                    <#assign eventEmail = artStructureValues["kontakt"]!""/> 
283                                    <#if !validator.isEmailAddress(eventEmail)> 
284                                        <#assign eventEmail = ""/> 
285                                    </#if> 
286 
287                                    <#assign hour = artStructureValues["godzinaRozpoczecia"]!""/> 
288                                    <#assign i = hour?index_of(':')/> 
289                                    <#if i?has_content && i gte 2> 
290                                        <#assign i = i - 2/> 
291                                        <#assign hour = hour?substring(i, 5)/> 
292                                        <#assign allday = false/> 
293                                    <#else> 
294                                        <#assign hour = "00:00"/> 
295                                        <#assign allday = true/> 
296                                    </#if> 
297 
298                                    <#if startDate?has_content> 
299                                        <#assign eventStartTime = dateUtil.parseDate("yyyyMMddHH:mm", startDate + hour, locale)/> 
300                                        <#assign eventStartTimeUTC = dateUtil.getUTCFormat().format(eventStartTime)?replace('UTC','Z')/> 
301                                    </#if> 
302 
303                                    <#if endDate?has_content> 
304                                        <#assign eventEndTime = dateUtil.parseDate("yyyyMMddHH:mm", endDate + hour, locale)/> 
305                                        <#assign eventEndTimeUTC = dateUtil.getUTCFormat().format(eventEndTime)?replace('UTC','Z')/> 
306                                    </#if> 
307 
308                                    <#assign googleCalendarURL = "https://calendar.google.com/calendar/render?action=TEMPLATE"/> 
309                                    <#assign googleCalendarURL = httpComponentsUtil.addParameter(googleCalendarURL,"text","articleTitle")/> 
310                                    <#if allday> 
311                                        <#assign googleCalendarURL = httpComponentsUtil.addParameter(googleCalendarURL, "dates", startDate + "/" + endDate)/> 
312                                    <#else> 
313                                        <#assign googleCalendarURL = httpComponentsUtil.addParameter(googleCalendarURL, "dates", eventStartTimeUTC + "/" + eventEndTimeUTC)/> 
314                                    </#if> 
315                                    <#assign googleCalendarURL = httpComponentsUtil.addParameter(googleCalendarURL, "details", articleDescription)/> 
316                                    <#assign googleCalendarURL = httpComponentsUtil.addParameter(googleCalendarURL, "location", eventLocation)/> 
317 
318                                    <#assign liveCalendarURL = "https://calendar.live.com/calendar/calendar.aspx?rru=addevent"/> 
319                                    <#if allday> 
320                                        <#assign liveCalendarURL = httpComponentsUtil.addParameter(liveCalendarURL, "dtstart", startDate)/> 
321                                        <#assign liveCalendarURL = httpComponentsUtil.addParameter(liveCalendarURL, "dtend", endDate)/> 
322                                        <#assign liveCalendarURL = httpComponentsUtil.addParameter(liveCalendarURL, "allday", "true")/> 
323                                    <#else> 
324                                        <#assign liveCalendarURL = httpComponentsUtil.addParameter(liveCalendarURL, "dtstart",eventStartTimeUTC)/> 
325                                        <#assign liveCalendarURL = httpComponentsUtil.addParameter(liveCalendarURL, "dtend", eventEndTimeUTC)/> 
326                                    </#if> 
327                                    <#assign liveCalendarURL = httpComponentsUtil.addParameter(liveCalendarURL, "summary", articleTitle)/> 
328                                    <#assign liveCalendarURL = httpComponentsUtil.addParameter(liveCalendarURL, "location", eventLocation)/> 
329                                    <#assign liveCalendarURL = httpComponentsUtil.addParameter(liveCalendarURL, "description", articleDescription)/> 
330 
331                                    <#assign outlookCalendarURL = "/gen/event.ics"/> 
332                                    <#if allday> 
333                                    <#--                                ${eventStartTime?string}==${dateUtil.getDate(eventStartTime, "yyyyMMdd'T'HHmmss", locale)}--> 
334                                    <#--                                <#assign outlookCalendarURL = httpComponentsUtil.addParameter(outlookCalendarURL, "start", dateUtil.getDate(eventStartTime, "yyyyMMdd'T'HHmmss", locale))/>--> 
335                                        <#if endDate?has_content> 
336                                            <#assign outlookCalendarURL = httpComponentsUtil.addParameter(outlookCalendarURL, "end", dateUtil.getDate(eventEndTime, "yyyyMMdd'T'HHmmss", locale))/> 
337                                        </#if> 
338                                    <#else> 
339                                        <#assign outlookCalendarURL = httpComponentsUtil.addParameter(outlookCalendarURL, "start", eventStartTimeUTC)/> 
340                                        <#assign outlookCalendarURL = httpComponentsUtil.addParameter(outlookCalendarURL, "end", eventEndTimeUTC)/> 
341                                    </#if> 
342                                    <#assign outlookCalendarURL = httpComponentsUtil.addParameter(outlookCalendarURL, "summary", articleTitle)/> 
343                                    <#assign outlookCalendarURL = httpComponentsUtil.addParameter(outlookCalendarURL, "location", eventLocation)/> 
344                                    <#assign outlookCalendarURL = httpComponentsUtil.addParameter(outlookCalendarURL, "description", articleDescription)/> 
345                                    <#assign outlookCalendarURL = httpComponentsUtil.addParameter(outlookCalendarURL, "email", eventEmail)/> 
346 
347                                    <#-- TWORZENIE LINKOW DO EKSPORTU KALENDARZA: KONIEC --> 
348                                    <#if artImgJson?has_content> 
349                                        <#assign artImgUrl = ujDocumentLibraryHelper.getFileEntryDownloadURL(artImgJson)/> 
350                                        <#attempt> 
351                                            <#assign imgDescription = ujDocumentLibraryHelper.getFileEntry(artImgJson).getDescription()/> 
352                                            <#recover> 
353                                                <#assign imgDescription = articleTitle/> 
354                                        </#attempt> 
355                                        <div class="article__related-post-image"> 
356                                            <img class="thumb" src="${artImgUrl}" alt="${imgDescription}"> 
357                                        </div> 
358                                    </#if> <#-- End of checking thumb --> 
359 
360 
361                                    <div class="add-to-calendar__wrapper"> 
362                                        <a href="${googleCalendarURL}" title="Google Calendar" target="_blank"  class="add-to-calendar__item jsAddToCalendarItem"> 
363                                            <span class="add-to-calendar__item-text">Google Calendar</span> 
364                                        </a> 
365                                        <a href="${liveCalendarURL}" title="Outlook.com" target="_blank"  class="add-to-calendar__item jsAddToCalendarItem"> 
366                                            <span class="add-to-calendar__item-text">Outlook.com</span> 
367                                        </a> 
368                                        <a href="${outlookCalendarURL}" title="iCalendar" class="add-to-calendar__item jsAddToCalendarItem"> 
369                                            <span class="add-to-calendar__item-text">iCalendar</span> 
370                                        </a> 
371                                        <a href="#" title="close" class="add-to-calendar__close jsAddToCalendarClose jsAddToCalendarItem"> 
372                                            <span class="post-excerpt__add-to-calendar-close"></span> 
373                                        </a> 
374                                    </div> 
375                                </div> 
376                            </#if><#-- end of checking image --> 
377 
378                            <div <#if artImgJson?has_content>class="post-excerpt__text-container"<#else>class="post-excerpt post-excerpt--condensed"</#if>> 
379 
380                                <h3 class="post-excerpt__sub-title"> 
381                                    <#if eventStartDate?has_content && eventEndDate?has_content> 
382                                        <#if eventStartDate == eventEndDate> 
383                                            ${eventStartDate} 
384                                        <#else> 
385                                            ${eventStartDate} - ${eventEndDate} 
386                                        </#if> 
387                                    <#elseif eventStartDate?has_content && !eventEndDate?has_content> 
388                                        ${eventStartDate} 
389                                    <#elseif !eventStartDate?has_content && eventEndDate?has_content> 
390                                        ${eventEndDate} 
391                                    </#if> 
392                                </h3> 
393                                <div class="post-excerpt__text"> 
394                                    ${articleDescription} 
395                                </div> 
396                                <a href="${articleUrl}" title="${articleTitle}" class="post-excerpt__link">${langReadMore} 
397                                    <span class="invisible-element">o ${articleTitle}</span> 
398                                </a> 
399                            </div> 
400                        </div> 
401                    </div> 
402                </div> <#-- end of event on day --> 
403            </#list> <#-- end of foreach assetsOnDay --> 
404        </div> <#-- end of accordion --> 
405    </#macro> 
406<#-- end of macros --> 
407 
408<#---- Services ----> 
409    <#assign 
410    journalArticleResourceService = serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService") 
411    journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
412    assetTagService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService") 
413    organizationService = serviceLocator.findService("com.liferay.portal.kernel.service.OrganizationLocalService") 
414    groupService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") 
415    fileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") 
416    /> 
417 
418<#---- Organizations & Groups ----> 
419    <#assign groupsList = []/> 
420    <#assign groupIds = []/> 
421 
422    <#if groupIdsData?has_content> 
423        <#assign groupIds = getterUtil.getLongValues(groupIdsData?split(","))/> 
424    </#if> 
425    <#if groupIds?size gt 0> 
426        <#list groupIds as groupId> 
427            <#assign groupsList = groupsList + [groupId]/> 
428        </#list> 
429    <#else> 
430        <#assign groupsList = [longGroupId?string]/> 
431        <#assign groupIds = [longGroupId]/> 
432    </#if> 
433 
434    <#assign groupsListFilter = groupsList/> 
435 
436    <#if groupFilter?has_content> 
437        <#if groupsList?seq_contains(groupFilter)> 
438            <#assign groupsList = [groupFilter?string]/> 
439        </#if> 
440    </#if> 
441 
442    <#assign emptyLongArray = getterUtil.getLongValues([])/> 
443 
444<#----------- Categories -----------> 
445    <#assign categoryIds = emptyLongArray/> 
446    <#assign omitcategoryIds = emptyLongArray/> 
447 
448    <#list stringUtil.split(categoriesData, ",") as categorie> 
449        <#if categorie?length gt 0> 
450            <#assign categoryNameTmp = [categorie?trim]/> 
451            <#list groupIds as longGroupId> 
452                <#assign categoryIdTmp = ujCustomAssetHelper.getCategoryIds(longGroupId, categoryNameTmp)/> 
453                <#assign categoryIds = arrayUtil.append(categoryIds, categoryIdTmp)/> 
454            </#list> 
455        </#if> 
456    </#list> 
457 
458    <#list stringUtil.split(omitCategoriesData, ",") as omitCategorie> 
459        <#if omitCategorie?length gt 0> 
460            <#assign omitCategoryNameTmp = [omitCategorie?trim]/> 
461            <#list groupIds as longGroupId> 
462                <#assign omitCategoryIdTmp = ujCustomAssetHelper.getCategoryIds(longGroupId, omitCategoryNameTmp)/> 
463                <#assign omitCategoryIds = arrayUtil.append(omitcategoryIds, omitCategoryIdTmp)/> 
464            </#list> 
465        </#if> 
466    </#list> 
467 
468<#----------- Tags -----------> 
469    <#assign tagIds = emptyLongArray/> 
470    <#assign omitTagIds = emptyLongArray/> 
471 
472    <#list stringUtil.split(tagsData, ",") as tag> 
473        <#if tag?length gt 0> 
474            <#assign tagNameTmp = [tag?trim]/> 
475            <#list groupIds as longGroupId> 
476                <#assign tagIdTmp = ujCustomAssetHelper.getTagIds(longGroupId, tagNameTmp)/> 
477                <#assign tagIds = arrayUtil.append(tagIds, tagIdTmp)/> 
478            </#list> 
479        </#if> 
480    </#list> 
481 
482    <#list stringUtil.split(omitTagsData, ",") as tag> 
483        <#if tag?length gt 0> 
484            <#assign omitTagNameTmp = [tag?trim]/> 
485            <#list groupIds as longGroupId> 
486                <#assign omitTagIdTmp = ujCustomAssetHelper.getTagIds(longGroupId, omitTagNameTmp)/> 
487                <#assign omitTagIds = arrayUtil.append(omitTagIds, omitTagIdTmp)/> 
488            </#list> 
489        </#if> 
490    </#list> 
491 
492<#----------- Getting assets -----------> 
493    <#assign 
494    indeksPoczatkowyOnDay = 0 
495    indeksKoncowyOnDay = 30 
496    indeksPoczatkowyOnGoing = 0 
497    indeksKoncowyOnGoing = 30 
498    indeksPoczatkowySoon = 0 
499    indeksKoncowySoon = 10 
500    /> 
501 
502<#--------- wyciąganie wydarzeń z danego dnia ---------> 
503    <#assign assetsOnDay =  ujCustomAssetHelper.getAssetsFromGroups(groupIds, typeData, 
504    categoryIds, omitCategoryIds, tagIds, omitTagIds, 
505    "startDate", "endDate", "DESC", "ASC", 
506    currentDay, null, nextDay, null, 
507    .now?date, indeksPoczatkowyOnDay, indeksKoncowyOnDay)/> 
508 
509<#----------- wyciąganie wydarzeń trwających -----------> 
510    <#assign assetsOnGoing =  ujCustomAssetHelper.getAssetsFromGroups(groupIds, typeData, 
511    categoryIds, omitCategoryIds, tagIds, omitTagIds, 
512    "startDate", "endDate", "DESC", "ASC", 
513    null, null, currentDay, secondBeforeCurrentDay, 
514    .now?date, indeksPoczatkowyOnGoing, indeksKoncowyOnGoing)/> 
515 
516<#----------- wyciąganie wydarzeń nadchodzących -----------> 
517    <#assign assetsSoon =  ujCustomAssetHelper.getAssetsFromGroups(groupIds, typeData, 
518    categoryIds, omitCategoryIds, tagIds, omitTagIds, 
519    "startDate", "endDate", "ASC", "ASC", 
520    nextDay, null, null, null, .now?date, 
521    indeksPoczatkowySoon, indeksKoncowySoon)/> 
522 
523    <section class="main-content" id="main-content"> 
524        <#-----------Select articles by groupId-----------> 
525        <#if !hideData?contains('group-filter')> 
526            <#if groupsListFilter?size gt 1> 
527                <form id="articlesFilter" name="formArticlesFilter"  class="jsForm" action="${urlWithoutParameters}" method="get" onsubmit=""> 
528                    <input type="hidden" name="day" value="${strDateSelected}"/> 
529                    <select name="groupFilter" id="groupFilter" class="jsFormSelect " data-placeholder="${langFilter}"> 
530                        <option value=""></option> 
531                        <option value="all"  <#if groupFilter == 'all'> selected='selected' </#if>>${langAll}</option> 
532                        <#list groupsListFilter as g> 
533                            <#assign grupa = groupService.getGroup(getterUtil.getLong(g))/> 
534                            <option value="${g}" <#if g?string == groupFilter> selected='selected' </#if>> 
535                                <#--special case on english site--> 
536                                <#if longGroupId == 16167284> 
537                                    <#if g == 757404>Archive new 
538                                    <#elseif g == 16167284>Current news 
539                                    <#else>${grupa.getDescriptiveName()} 
540                                    </#if> 
541                                <#else> 
542                                    ${grupa.getDescriptiveName()} 
543                                </#if> 
544                            </option> 
545                        </#list> 
546                    </select> 
547                </form> 
548            </#if><#--end of form--> 
549        </#if><#--end of checking hiding--> 
550 
551        <script type="text/javascript"> 
552 
553            jQuery('select').change(function() { 
554                jQuery(this).parent('form').submit(); 
555            }); 
556 
557        </script> 
558 
559        <#-- end of SELECT ARTICLES BY GROUPID --> 
560 
561        <style> 
562            a.skip-calendar{ 
563                width:1px; 
564                height:1px; 
565                padding:10px; 
566                background:#fff; 
567                text-decoration:none; 
568                color:#005ca7; 
569                outline:3px #005ca7 solid; 
570                overflow:hidden; 
571                position:absolute; 
572                top:0; 
573                left:-99999px 
574            } 
575            .skip-calendar:focus,.skip-calendar:active{ 
576                width:auto; 
577                height:auto; 
578                position: relative; 
579                top: 40px; 
580                left: 0; 
581                z-index:320; 
582            } 
583        </style> 
584 
585        <#-- Calendar --> 
586        <div class="calendar"> 
587            <div class="calendar__aside"> 
588                <div class="calendar__current-day-wrapper"> 
589                    <div class="calendar__current-day-top"></div> 
590                    <div class="calendar__current-day"> 
591                        ${dayNumber} 
592                    </div> 
593                </div> 
594                <div class="calendar__current-day-name"> 
595                    ${dayName} 
596                </div> 
597                <div class="calendar__current-day-date"> 
598                    ${strDate} 
599                </div> 
600                <a href="#calendar-events" tabindex="0" title="$lang-skip-to-events" class="skip-calendar"> 
601                    ${langSkipToEvents} 
602                </a> 
603 
604                <#if formAddEventUrlData?has_content> 
605                    <a href="${formAddEventUrlData}" title="${langAddNewEvent}" class="calendar__add-event"> 
606                        ${langAddNewEvent} 
607                    </a> 
608                </#if> 
609            </div> 
610 
611            <div class="calendar__wrapper jsCalendar"></div> 
612            <script type="text/template" id="calendar-template"> 
613                <div class="calendar__controls"> 
614                    <button  class="calendar__prev jsCalendarPrev"> 
615                        <span class="invisible-element">Poprzedni miesiąc</span> 
616                        <i class="icon icon-angle-left"></i> 
617                    </button> 
618                    <div class="calendar__month"> 
619                        <%= month %> <%= year %> 
620                    </div> 
621                    <button  class="calendar__next jsCalendarNext"> 
622                        <span class="invisible-element">Następny miesiąc</span> 
623                        <i class="icon icon-angle-right"></i> 
624                    </button> 
625                </div> 
626                <div class="calendar__grid"> 
627                    <div class="calendar__days-of-the-week"> 
628                        <% _.each(daysOfTheWeek, function(day) { %> 
629                        <div class="calendar__header-day"><%= day %></div> 
630                        <% }); %> 
631                    </div> 
632                    <div class="calendar__days"> 
633                        <% _.each(days, function(day) { %> 
634                        <button  class="<%= day.classes %>"> 
635                            <%= day.day %> 
636                        </button> 
637                        <% }); %> 
638                    </div> 
639                </div> 
640            </script> 
641 
642        </div> 
643 
644 
645        <span id="calendar-events"></span> 
646        <#-- on DAY --> 
647        <#if assetsOnDay?size gt 0> 
648            <div class="post-excerpt-groups _cf"> 
649                <div class="post-excerpt-groups__title"> 
650                    ${langSelected} ${langDay} 
651                </div> 
652                <@assetsLoop assets=assetsOnDay  open=true/> 
653            </div> <#-- end of .post-excerpt-groups _cf --> 
654        </#if> <#-- end of checking assetsOnDay size>0 --> 
655 
656        <#-- on GOING --> 
657        <#if assetsOnGoing?size gt 0> 
658            <div class="post-excerpt-groups _cf"> 
659                <div class="post-excerpt-groups__title"> 
660                    ${langOngoingEvents} 
661                </div> 
662                <@assetsLoop assets=assetsOnGoing open=false/> 
663            </div> <#-- end of .post-excerpt-groups _cf --> 
664        </#if> <#-- end of checking assetsOnGoing size>0 --> 
665 
666        <#-- SOON --> 
667        <#if assetsSoon?size gt 0> 
668            <div class="post-excerpt-groups _cf"> 
669                <div class="post-excerpt-groups__title"> 
670                    ${langSoonEvents} 
671                </div> 
672                <@assetsLoop assets=assetsSoon open=false/> 
673            </div> <#-- end of .post-excerpt-groups _cf --> 
674        </#if> <#-- end of checking assetsOnGoing size>0 --> 
675 
676        <#if assetsOnDay?size == 0 && assetsOnGoing?size == 0 && assetsSoon?size == 0> 
677            <div class="post-excerpt__text" id="aui_3_6_0_1_650"> 
678                ${noResultsData} 
679            </div> 
680        <#else> 
681            <a href="#" title="${langBackToTop}" class="gotop-button jsGoTop"> 
682                ${langBackToTop} 
683            </a> 
684        </#if> 
685 
686    </section> 
687 
688<#else> 
689    <#if permissionChecker.getUserId() gt 100000> 
690        <p>Ten szablon przeznaczony jest tylko dla dedykowanej skórki UJ</p> 
691    </#if> 
692</#if> 
693 
694<script> 
695    /* 
696    *   This content is licensed according to the W3C Software License at 
697    *   https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document 
698    * 
699    *   Simple accordion pattern example 
700    */ 
701 
702    'use strict'; 
703 
704    Array.prototype.slice.call(document.querySelectorAll('.Accordion')).forEach(function (accordion) { 
705 
706        // Allow for multiple accordion sections to be expanded at the same time 
707        var allowMultiple = accordion.hasAttribute('data-allow-multiple'); 
708        // Allow for each toggle to both open and close individually 
709        var allowToggle = (allowMultiple) ? allowMultiple : accordion.hasAttribute('data-allow-toggle'); 
710 
711        // Create the array of toggle elements for the accordion group 
712        var triggers = Array.prototype.slice.call(accordion.querySelectorAll('.Accordion-trigger')); 
713        var panels = Array.prototype.slice.call(accordion.querySelectorAll('.Accordion-panel')); 
714 
715        // Bind keyboard behaviors on the main accordion container 
716        accordion.addEventListener('keydown', function (event) { 
717            var target = event.target; 
718            var key = event.which.toString(); 
719 
720            var isExpanded = target.getAttribute('aria-expanded') == 'true'; 
721            var allowToggle = (allowMultiple) ? allowMultiple : accordion.hasAttribute('data-allow-toggle'); 
722 
723            // 33 = Page Up, 34 = Page Down 
724            var ctrlModifier = (event.ctrlKey && key.match(/33|34/)); 
725 
726            // Is this coming from an accordion header? 
727            if (target.classList.contains('Accordion-trigger')) { 
728                // Up/ Down arrow and Control + Page Up/ Page Down keyboard operations 
729                // 38 = Up, 40 = Down 
730                if (key.match(/38|40/) || ctrlModifier) { 
731                    var index = triggers.indexOf(target); 
732                    var direction = (key.match(/34|40/)) ? 1 : -1; 
733                    var length = triggers.length; 
734                    var newIndex = (index + length + direction) % length; 
735 
736                    triggers[newIndex].focus(); 
737 
738                    event.preventDefault(); 
739                } 
740                else if (key.match(/35|36/)) { 
741                    // 35 = End, 36 = Home keyboard operations 
742                    switch (key) { 
743                        // Go to first accordion 
744                        case '36': 
745                            triggers[0].focus(); 
746                            break; 
747                        // Go to last accordion 
748                        case '35': 
749                            triggers[triggers.length - 1].focus(); 
750                            break; 
751                    } 
752                    event.preventDefault(); 
753 
754                } 
755 
756            } 
757        }); 
758 
759        // These are used to style the accordion when one of the buttons has focus 
760        accordion.querySelectorAll('.Accordion-trigger').forEach(function (trigger) { 
761 
762            trigger.addEventListener('focus', function (event) { 
763                accordion.classList.add('focus'); 
764            }); 
765 
766            trigger.addEventListener('blur', function (event) { 
767                accordion.classList.remove('focus'); 
768            }); 
769 
770        }); 
771 
772        // Minor setup: will set disabled state, via aria-disabled, to an 
773        // expanded/ active accordion which is not allowed to be toggled close 
774        if (!allowToggle) { 
775            // Get the first expanded/ active accordion 
776            var expanded = accordion.querySelector('[aria-expanded="true"]'); 
777 
778            // If an expanded/ active accordion is found, disable 
779            if (expanded) { 
780                expanded.setAttribute('aria-disabled', 'true'); 
781            } 
782        } 
783 
784    }); 
785 
786</script>