Asset Publisher
An error occurred while processing the template.
The following has evaluated to null or missing: ==> "${EndDate_Format [in template "10312#652891#13405963" at line 37, column 27] ---- Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${EndDate_Formatted?json_string} [in template "10312#652891#13405963" at line 37, column 25] - Reached through: #assign eventJson = "{\n \... [in template "10312#652891#13405963" at line 32, column 9] ----
1<#assign eventsList = []>
2<#assign eventsJson = "[]">
3<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
4
5<#if entries?has_content>
6 <#list entries as curEntry>
7
8 <!-- get field values for entry -->
9 <#assign fields = curEntry.getAssetRenderer().getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValues()/>
10 <#if fields?size gt 1>
11 <!-- StartDate field -->
12 <#assign StartDate_Data = fields[0].getValue().getString(locale)>
13
14 <#if validator.isNotNull(StartDate_Data)>
15 <#assign StartDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", StartDate_Data, locale)>
16 <#assign StartDate_Formatted = dateUtil.getDate(StartDate_DateObj, "yyyy-MM-dd", locale)>
17 </#if>
18
19 <!-- EndDate field -->
20 <#assign EndDate_Data = fields[1].getValue().getString(locale)>
21 <#if validator.isNotNull(EndDate_Data)>
22 <#assign EndDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", EndDate_Data, locale)>
23 <#assign EndDate_Formatted = dateUtil.getDate(EndDate_DateObj, "yyyy-MM-dd", locale)>
24
25 </#if>
26 </#if>
27
28 <#assign urlViewInContext = curEntry.getAssetRenderer().getURLViewInContext(renderRequest, renderResponse, currentURL) />
29
30
31 <!-- Create a JSON object for the event -->
32 <#assign eventJson = "{
33 \"name\": \"${curEntry.getTitle(locale)?json_string}\",
34 \"link\": \"${urlViewInContext?json_string}\",
35 \"description\": \"${curEntry.getSummary(locale)?json_string}\",
36 \"startDate\": \"${StartDate_Formatted?json_string}\",
37 \"endDate\": \"${EndDate_Formatted?json_string}\",
38 \"color\": \"#CCEFF6\",
39 }"/>
40
41 <!-- Add the event JSON to the events list -->
42 <#assign eventsList = eventsList + [eventJson]>
43 </#list>
44
45<!-- Combine all event JSON objects into a single JSON array string -->
46 <#assign eventsJson = "[" + eventsList?join(",") + "]">
47
48 <script>
49 var events = ${eventsJson};
50 </script>
51</#if>
52
53<div class="container">
54 <div class="events-calendar" data-view-toggle="events-calendar" id="events-calendar" data-events=${eventsJson} data-view="upcoming"></div>
55 <ul class="events-list" data-view-toggle="events-list-wrapper" id="events-list-wrapper" style="display: none"></ul>
56</div>