Domovská stránka
Při zpracování šablony došlo k chybě.
Java method "com.liferay.portal.kernel.util.DateUtil_IW.parseDate(String, String, Locale)" threw an exception when invoked on com.liferay.portal.kernel.util.DateUtil_IW object "com.liferay.portal.kernel.util.DateUtil_IW@4fab89a8"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: eventDate = dateUtil.parseDate("yyyy-... [in template "20116#20152#30915" in function "getEventEntries" at line 123, column 25] ----
1<#assign
2 showEvents = 8
3 count = 0
4 dateFormat = "dd.MM.yyyy "
5 eventsLink = themeDisplay.getThemeSetting("ponsse.events-link")
6 homeName = portalUtil.getLayoutFriendlyURL(layout, themeDisplay)?keep_after_last("/")
7 eventEntries = getEventEntries()
8/>
9
10<div class="ponsse-events">
11 <div class="header">
12 <div class="title"><@liferay_ui["message"] key="ponsse.events" /></div>
13 <div class="all-events-text">
14 <a href=${themeDisplay.getThemeSetting("ponsse.events-link")}>
15 <i class="fas fa-arrow-right"></i>
16 <@liferay_ui["message"] key="ponsse.view-all-events" />
17 </a>
18 </div>
19 </div>
20
21 <div class="content" id="ponsse-events-content">
22 <div class="arrow-left" id="ponsse-events-left-arrow" onclick="scrollEventsContent(false)">
23 <i class="fas fa-chevron-left"></i>
24 </div>
25 <div class="arrow-right" id="ponsse-events-right-arrow" onclick="scrollEventsContent(true)">
26 <i class="fas fa-chevron-right"></i>
27 </div>
28
29 <#list eventEntries?sort_by("eventDate") as event>
30 <#if (count < showEvents) >
31 <div class="asset-abstract event-link">
32 <@getEditIcon event/>
33
34 <a href="${event.viewURL}">
35 <div class="event-image">
36 <img src="${event.imageURL}"/>
37 </div>
38
39 <div class="event-details">
40 <div class="event-title">${event.entryTitle}</div>
41 <span class="event-date">
42 ${dateUtil.getDate(event.eventDate, dateFormat, locale)}
43 </span>
44 </div>
45 </a>
46 </div>
47 <#assign count = count + 1/>
48 <#if (count == showEvents)><#break></#if>
49 </#if>
50 <#else>
51 <#if !themeDisplay.isSignedIn()>
52 ${renderRequest.setAttribute("PORTLET_CONFIGURATOR_VISIBILITY", true)}
53 </#if>
54
55 <div class="alert alert-info">
56 <@liferay_ui["message"] key="there-are-no-results" />
57 </div>
58 </#list>
59 </div>
60</div>
61
62<#macro getEditIcon entry>
63 <div class="pull-right">
64 <#if entry.allowEdit>
65 <#if validator.isNotNull(entry.editPortletURL)>
66 <#local title = languageUtil.format(locale, "edit-x", entry.entryTitle, false) />
67 <@liferay_ui["icon"]
68 cssClass="icon-monospaced visible-interaction"
69 icon="pencil"
70 markupView="lexicon"
71 message=title
72 url="javascript:Liferay.Util.openWindow({id:'" + renderResponse.getNamespace() + "editAsset', title: '" + title + "', uri:'" + htmlUtil.escapeURL(entry.editPortletURL.toString()) + "'});"
73 />
74 </#if>
75 </#if>
76 </div>
77</#macro>
78
79<#function getEventEntries>
80 <#local
81 newEntries = []
82 currentDate = dateUtil.newDate()
83 now = .now?date?iso_utc
84 redirectURL = renderResponse.createRenderURL()
85 />
86 ${redirectURL.setParameter("mvcPath", "/add_asset_redirect.jsp")}
87 ${redirectURL.setWindowState("pop_up")}
88
89 <#list entries as entry>
90 <#local
91 entry = entry
92 categories = entry.getCategories()
93 assetRenderer = entry.getAssetRenderer()
94 journalArticle = assetRenderer.getArticle()
95 structureKey = journalArticle.getDDMStructureKey()
96 document = saxReaderUtil.read(journalArticle.getContentByLocale(locale))
97 rootElement = document.getRootElement()
98 elements = rootElement.elements()
99
100 eventDate = ""
101 displayLocales = ""
102 imageContent = ""
103 startWithDelay = ""
104 endWithDelay = ""
105 renderEvent = false
106 />
107
108 <#if categories?has_content>
109 <#list categories as cat>
110 <#if (cat.getVocabularyId()?long == 246344)>
111 <#local displayLocales = cat.getName() + ", " + displayLocales/>
112 </#if>
113 </#list>
114 </#if>
115
116 <#if ( !displayLocales?has_content || displayLocales?contains(locale) || ( stringUtil.equals("227085", structureKey) && displayLocales?contains("en_US") ) )>
117 <#list elements as element>
118 <#if "eventImage" == element.attributeValue("name")>
119 <#local imageContent = element.element("dynamic-content").getText() />
120 </#if>
121 <#if "start" == element.attributeValue("name")>
122 <#local
123 eventDate = dateUtil.parseDate("yyyy-MM-dd", element.element("dynamic-content").getText(), locale)
124 startWithDelay = dateDiff(eventDate,-3)
125 />
126 </#if>
127 <#if "end" == element.attributeValue("name")>
128 <#local endValue = element.element("dynamic-content").getText() />
129 <#if ( endValue?has_content )>
130 <#local endWithDelay = dateDiff(endValue?date('iso'),-3) />
131 </#if>
132 </#if>
133 </#list>
134
135 <#if endWithDelay?has_content>
136 <#local renderEvent = (now?date('iso') <= endWithDelay)>
137 <#elseif startWithDelay?has_content>
138 <#local renderEvent = (now?date('iso') <= startWithDelay)>
139 </#if>
140
141 <#if renderEvent>
142 <#local
143 editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)!""
144 entryJson = {
145 "entryTitle": htmlUtil.escape(entry.getTitle(locale)),
146 "eventDate": eventDate,
147 "viewURL": getViewUrl(entry),
148 "imageURL": getImageUrl(imageContent),
149 "allowEdit": assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker()),
150 "editPortletURL": editPortletURL
151 }
152 newEntries = newEntries + [ entryJson ]
153 />
154 </#if>
155 </#if>
156 </#list>
157 <#return newEntries>
158</#function>
159
160<#function getViewUrl entry>
161 <#local
162 viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry.getAssetRenderer(), entry, !stringUtil.equals(assetLinkBehavior, "showFullContent"))
163 newViewUrl = viewURL?split("?")[0]?replace("/wjLB97Rb0Lbu/", "/z0VqGisibkho/")?replace("/${homeName}/", "/${eventsLink}/")
164 />
165 <#return newViewUrl>
166</#function>
167
168<#function getImageUrl content>
169 <#local imageURL = "/o/ponsse-theme/images/default-thumbnail-ponsse-304x171.jpg" />
170 <#if content?has_content>
171 <#local
172 imageUUID = jsonFactoryUtil.createJSONObject(content).getString("uuid")
173 siteId = themeDisplay.getSiteGroupId()
174 imageURL = "/documents/${siteId}/${imageUUID}"
175 />
176 </#if>
177 <#return imageURL>
178</#function>
179
180<#function dateDiff date days>
181 <#assign timeInMilliseconds = (1000 * 60 * 60 * 24 * days) >
182 <#assign aDate = date?long - timeInMilliseconds?long>
183 <#return aDate?number_to_date>
184</#function>
185
186<script>
187 var cachebuster = Math.round(new Date().getTime() / 1000);
188 var path = "/o/ponsse-theme/js/utils.js?cb=" + cachebuster;
189 document.write("<script type='text/javascript' src='"+ path + "'><\/scr" + "ipt>");
190</script>
191
192<script>
193 function hideArrowsEventArrows(e) {
194 var target = e.target;
195 var scrollWidth = target.scrollWidth;
196 var offsetWidth = target.offsetWidth;
197 var scrollLeft = target.scrollLeft;
198 var scrollDistance = scrollWidth - offsetWidth;
199 var scrollPosition = scrollDistance - scrollLeft;
200 var leftArrow = document.getElementById('ponsse-events-left-arrow')
201 var rightArrow = document.getElementById('ponsse-events-right-arrow')
202
203 if (scrollPosition === scrollDistance) {
204 leftArrow.style.display = "none";
205 } else {
206 leftArrow.style.display = "flex";
207 }
208 if (scrollPosition === 0) {
209 rightArrow.style.display = "none";
210 } else {
211 rightArrow.style.display = "flex";
212 }
213 }
214
215 dragToScrollHorizontal('ponsse-events-content', 'event-link', function (e) {
216 hideArrowsEventArrows(e);
217 })
218
219
220 function scrollEventsContent(left) {
221 var content = document.getElementById('ponsse-events-content');
222 smooth_scroll_to_horizontal(content, content.scrollLeft + 310 * (left ? 1 : -1), 400)
223 }
224</script>
Novinky