Test of New Captioned Carousel

Current Policies

Citizens Highlights

Navigation Menu

Breadcrumb

Asset Publisher

An error occurred while processing the template.
The following has evaluated to null or missing:
==> values[valueId]  [in template "20154#20194#20883" at line 73, column 44]

----
Tip: It's the final [] step that caused this error, not those before it.
----
Tip: If the failing expression is known to 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: ${values[valueId].name}  [in template "20154#20194#20883" in macro "buildPifCards" at line 73, column 42]
	- Reached through: @buildPifCards policies=cpic.pifPolic...  [in template "20154#20194#20883" at line 153, column 9]
----
1<#import "${journalTemplatesPath}/12331509" as cpic /> 
2 
3<#macro buildPifCards policies totals pifDate> 
4    <#assign 
5        pifTotal = 0 
6        sums = {} 
7        values = {} 
8    /> 
9 
10    <div class="${cpic.cpicCssContentClasses} cpic-col-header invert">Current Policy Count as of ${pifDate}</div> 
11 
12    <#list totals as total> 
13        <#assign 
14            sumId = "sum_${total?counter}" 
15            sumTotal = 0 
16        /> 
17 
18        <#list policies?keys as pId> 
19            <#assign 
20                fullString = "${pId}.${pId}${total?counter}.getData()" 
21                fieldValue = getterUtil.getLong(fullString?eval) 
22            /> 
23 
24            <#if fieldValue gt 0> 
25                <#assign 
26                    sumTotal += fieldValue 
27                    valueId = "${pId}_${total?counter}" 
28                    values += {valueId:{"name":total, "value":fieldValue}} 
29                /> 
30            </#if> 
31        </#list> 
32 
33        <#assign sums += {sumId:{"name":total, "value":sumTotal}} /> 
34    </#list> 
35 
36    <#list sums?values> 
37        <div class="${cpic.cpicCssContentClasses} h4 mb-3 pif-totals py-3"> 
38            <div class="no-gutters row"> 
39                <#items as sum> 
40                    <div class="col-12 col-md-4"> 
41                        <div class="no-gutters row"> 
42                            <div class="col-7 col-md-12"> 
43                                <div>${sum.name}:</div> 
44                            </div> 
45                            <div class="col-5 col-md-12 col-lg-6"> 
46                                <div>${sum.value?string.number}</div> 
47                            </div> 
48                        </div> 
49                    </div> 
50                </#items> 
51            </div> 
52        </div> 
53    </#list> 
54 
55    <#assign cards = [] /> 
56 
57    <#list policies as pId, policy> 
58        <#if values["${pId}_1"]??> 
59            <#assign 
60                pifHeaderLeft = '<span class="pr-4"><i class="card-link-caret fas"></i></span><span>${policy.name}</span>' 
61                pifHeaderRight = values["${pId}_1"].value?string.number 
62            /> 
63 
64            <#assign cardBody> 
65                <div class="h5">Account</div> 
66                <div>${policy.account}</div> 
67                <div class="h5 mt-3">Product</div> 
68                <div>${policy.product}</div> 
69 
70                <#list 2..totals?size as q> 
71                    <#assign valueId = "${pId}_${q}" /> 
72 
73                    <div class="h5 mt-3">${values[valueId].name}</div> 
74                    <div>${values[valueId].value?string.currency}</div> 
75                </#list> 
76            </#assign> 
77 
78            <#assign card> 
79                <@cpic.buildCard cardBody=cardBody cardHeaderLeftContent=pifHeaderLeft cardHeaderRightContent=pifHeaderRight cardHeaderRightCssClasses="" useHeaderRightToOpen=false /> 
80            </#assign> 
81 
82            <#assign cards += [card] /> 
83        </#if> 
84    </#list> 
85     
86    <@cpic.buildShowHideButtons cgId="pifCards" /> 
87 
88    <@cpic.buildCardLayout cards=cards cardsCssId="pifCards" cardsCssClasses="mb-1 pif-cards" contentTemplate=true lgColTotal=2 /> 
89</#macro> 
90 
91<#macro buildPifSummary policies pifDate> 
92    <#assign pifTotal = 0 /> 
93 
94	<div class="${cpic.cpicCssContentClasses} cpic-table pif-table"> 
95		<table> 
96			<thead> 
97				<tr> 
98					<th>Account</th> 
99					<th>Policies</th> 
100				</tr> 
101			</thead> 
102			<tbody> 
103                <#list policies> 
104                    <#items as id, policy> 
105                        <#assign 
106                            fullString = "${id}.${id}1.getData()" 
107                            fieldValue = getterUtil.getLong(fullString?eval) 
108                        /> 
109 
110                        <#if fieldValue gt 0> 
111                            <tr> 
112                                <td>${policy.name}</td> 
113                                <td>${fieldValue?string.number}</td> 
114                            </tr> 
115 
116                            <#assign pifTotal += fieldValue /> 
117                        </#if> 
118                    </#items> 
119 
120                    <tr class="tr-last"> 
121                        <td colspan="2"> 
122                            <div> 
123                                <span>Total (${pifDate})</span> 
124                                <span>${pifTotal?string.number}</span> 
125                            </div> 
126                        </td> 
127                    </tr> 
128                </#list> 
129            </tbody> 
130        </table> 
131    </div> 
132</#macro> 
133 
134<#assign 
135    domain = portalUtil.getPortalURL(request) 
136    link = .vars['reserved-article-url-title'].data 
137    pifDateCard = cpic.getFormattedDate(getterUtil.getString(Publication_Date.getData()), "MMMM dd, yyyy") 
138    pifDateSummary = cpic.getFormattedDate(getterUtil.getString(Publication_Date.getData()), "MM.dd.yy") 
139    feedLink = "${domain}/${link}" 
140    feedTitle = "Citizens Property Insurance Corporation Policies as of ${pifDateCard}" 
141    shareLinks = "twitter, facebook, google, linkedin, email" 
142    view = getterUtil.getBoolean(httpUtil.getParameter(current_url, "full_view", false)) 
143/> 
144 
145<#if layout.isPrivateLayout()> 
146    <#assign target = "_blank" /> 
147<#else> 
148    <#assign target = "_self" /> 
149</#if> 
150 
151<#if view || (portalUtil.getCurrentURL(request)?contains("/-/") && !portalUtil.getCurrentURL(request)?contains("/-/categories/")) || portalUtil.getCurrentURL(request)?contains("/current-policies")> 
152    <div class="pif-snapshot"> 
153        <@buildPifCards policies=cpic.pifPolicies totals=cpic.pifTotals pifDate=pifDateCard /> 
154 
155		<div class="${cpic.cpicCssContentClasses} pb-3 pif-buttons text-right"> 
156			<a class="cpi-button" href="${Report.getData()}" target="_blank">Detail View</a> 
157			${county_view.getData()?has_content?then('<a class="cpi-button-clear ml-4" href="${county_view.getData()}" target="_blank">County View</a>', '')} 
158		</div> 
159    </div> 
160    <div class="${cpic.cpicCssContentClasses} pif-info pt-3"> 
161        <div class="pif-share share"> 
162            <@cpic.buildShareLinks mediaDomain=domain mediaLink=feedLink mediaTitle=feedTitle socialIcons=shareLinks shareClass="" alignLeft=true useButton=false useAnimation=true /> 
163        </div> 
164    </div> 
165 
166    <script> 
167        cpicEW.addCards("pifCards", false, false); 
168    </script> 
169<#else> 
170    <@buildPifSummary policies=cpic.pifPolicies pifDate=pifDateSummary /> 
171 
172    <div class="${cpic.cpicCssContentClasses} py-3 pif-buttons"> 
173        <a class="cpi-button" href="${Report.getData()}" target="_blank">Detail View</a> 
174    </div> 
175</#if>