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>