Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing: ==> lifecycleLabel[lifecycle] [in template "20154#20194#25337" at line 73, column 53] ---- 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: #if (header.getTitle(locale)?lower_ca... [in template "20154#20194#25337" at line 73, column 9] ----
1<style>
2 .cor {background: ${(category.color.getData())!} !important;}
3 .ico-service {
4 border: 4px solid #fff;
5 display: table !important;
6 border-radius: 100%;
7 padding: 10px;
8 }
9 .ico-service i {color:#fff;font-size:100px;padding:10px;display: table-cell !important;}
10 .back-service{height: 100% !important;background-size: cover !important;}
11 .service-title{
12 font-size: 45px;
13 color: #fff;
14 text-transform: uppercase;
15 font-weight: bold;
16 display: -webkit-inline-box;
17 vertical-align: top;
18 line-height: 120px;
19 margin-left: 20px;
20 }
21 .service-title small{font-size: 14px;line-height: 18px;margin-top: -40px;position: absolute;}
22 .cor .icon-wrapper {
23 border: 2px solid #fff;
24 width: 64px;
25 height: 64px;
26 display: table !important;
27 border-radius: 50px;
28 margin: 0 auto;
29 padding: 5px;
30 }
31 .cor a, .cor .service-icon{color:#fff;}
32 .cor a:hover{color:#fff;text-decoration:none;}
33 .service-menu-container .span3{width: 24.9999999% !important;}
34 .service-menu-container [class*="span"]{margin-left: 0 !important}
35 .service-menu-container [class*="span"]:first-child {margin-left: 0 !important;}
36 .pagetitle-content input[type="text"] {
37 color: #fff;
38 background: rgba(255,255,255,0.3);
39 border: 0;
40 padding: 3px 5px;
41 margin-top: 5px;
42 }
43 .lfr-token-list{display:none;}
44 .search-layout{display:none;}
45 .control-group{margin-bottom:0 !important;}
46 .pagetitle-content form{margin-bottom:0;display:-webkit-inline-box;margin-left: 20px;}
47 .pagetitle-content{padding:5px 0 0 !important;}
48 .no-margin { margin: 0px !important; }
49 .service-ciclo-vida { width: 50% !important; height: 230px !important; }
50 .service-ciclo-vida-titulo { margin: 40px 0 0 20px; }
51 .service-ciclo-vida-titulo span { float: left; }
52</style>
53
54<#assign categories = [] />
55<#assign exists = false />
56<#assign count = 1 />
57<#assign lum = 0.1 />
58<#assign asc = true />
59<#assign lifecycle = httpUtil.getParameter(portalUtil.getCurrentCompleteURL(request), 'ciclo')! />
60<#assign lifecycleLabel = {
61 'cv_crianca' : 'criança',
62 'cv_adolescente' : 'adolescente',
63 'cv_adulto' : 'adulto',
64 'cv_idoso' : 'idoso',
65 'cv_servidor' : 'servidor',
66 'cv_ute': 'Credito'
67} />
68
69<#if (lifecycle != '') >
70 <#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
71 <#-- TODO MIGRA: Tomar cuidado com número mágico abaixo -->
72 <#list assetEntryLocalService.getAssetTagAssetEntries(193149) as header >
73 <#if (header.getTitle(locale)?lower_case == lifecycleLabel[lifecycle]) >
74 <#assign renderer = header.getAssetRenderer() />
75 <#assign className = renderer.getClassName() />
76 <#if className == "com.liferay.journal.model.JournalArticle" >
77 <#assign jad = renderer.getArticle() />
78 <#assign document = saxReaderUtil.read(jad.getContent()) />
79 <#assign rootElement = document.getRootElement() />
80 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='color']/dynamic-content") />
81 <#assign color = xPathSelector.selectSingleNode(rootElement).getStringValue() />
82 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='icon']/dynamic-content") />
83 <#assign icon = xPathSelector.selectSingleNode(rootElement).getStringValue() />
84 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='category']/dynamic-content") />
85 <#assign category = xPathSelector.selectSingleNode(rootElement).getStringValue() />
86 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='imagem']/dynamic-content") />
87 <#assign image = xPathSelector.selectSingleNode(rootElement).getStringValue() />
88 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='color_text']/dynamic-content") />
89 <#assign style = xPathSelector.selectSingleNode(rootElement).getStringValue() />
90
91 <style>.cor{background:${color};} .back-service{background: url('${image?trim}');}</style>
92
93 <div class="row-fluid" style="margin-top: 20px;">
94 <div class="span6 cor contrast-cor1 no-margin service-ciclo-vida service-ciclo-vida-icone">
95 <div class="service-ciclo-vida-titulo">
96 <span>
97 <div class="ico-service">
98 <i class="${icon}"></i>
99 </div>
100 </span>
101 <span class="service-title contrast-cor1">${category}<br/><small>Selecione a área relacionada ao serviço</small></span>
102 </div>
103 </div>
104
105 <div class="span6 cor contrast-cor1 no-margin service-ciclo-vida">
106 <div class="back-service img-contrast"></div>
107 </div>
108 </div>
109 </#if>
110 <#break>
111 </#if>
112 </#list>
113</#if>
114
115<div class="service-container" style="padding:0;margin-bottom:80px;background:none;">
116 <section class="service-menu-container row-fluid" style="display: flex;flex-wrap: wrap;;">
117 <#if (lifecycle == '') >
118 <style>.cor{background:#056CAF;}.service-menu-container{margin-top: -15px !important;}</style>
119 <#list entries as curEntry >
120 <@listaConteudoMesmaCategoria curEntry />
121 </#list>
122 <#else>
123 <#list entries! as curEntry >
124 <#assign entryTags = (curEntry.getTags())! />
125 <#list entryTags as tag >
126 <#if (tag.name == lifecycle) >
127 <@listaConteudoMesmaCategoria curEntry />
128 <#break>
129 </#if>
130 </#list>
131 </#list>
132 </#if>
133 </section>
134</div>
135
136<#macro listaConteudoMesmaCategoria curEntry>
137 <#list curEntry.getCategories() as entryCat >
138 <#if entryCat! != "" >
139 <#if categories?seq_contains(entryCat.name?trim) >
140 <#break>
141 <#else>
142 <#if (entryCat.name?trim != "general") >
143 <#assign categories = categories + [entryCat.name?trim] >
144 <#assign icon = (entryCat.getDescriptionCurrentValue())! />
145 <#assign icon = (icon?split("icon-")[1])!"mt-mt" />
146 <#assign icon = (icon?split(" ")[0])! />
147 <#assign icon = "icon-" + icon?trim />
148 <#assign renderer = curEntry.getAssetRenderer() />
149 <#assign link = renderer.getURLViewInContext(renderRequest, renderResponse, '') />
150 <#if asc > <#assign contrast = "contrast-cor${count}" />
151 <#else > <#assign contrast = "contrast-cor${5 - count}" />
152 </#if>
153 <div class="span3 cor ${contrast}" style="height:inherit;padding: 12px 12px 0px 8px;">
154 <a href="${link}?ciclo=${lifecycle!}">
155 <div class="icon-wrapper">
156 <i class="service-icon ${icon}"></i>
157 </div>
158 <h5 style="font-size:1.1em;font-weight:normal;text-transform:uppercase;">${entryCat.name?trim}<h5>
159 </a>
160 </div>
161 <#if (count > 1) >
162 <#if (asc) > <#assign lum = lum + 0.2 />
163 <#else> <#assign lum = lum - 0.2 />
164 </#if>
165 </#if>
166 <#assign count = count + 1 />
167 <#if (count > 4) >
168 <#assign count = 1 />
169 <#assign asc = !asc />
170 </#if>
171 </#if>
172 </#if>
173 </#if>
174 <script type="text/javascript">
175 var items = document.querySelectorAll(".cor");
176 var lastchild = items[items.length-1];
177 lastchild.style.backgroundColor = ColorLuminance("${color!"#00609E"}", ${lum});
178 function ColorLuminance(hex, lum) {
179 // validate hex string
180 hex = String(hex).replace(/[^0-9a-f]/gi, '');
181 if (hex.length < 6) {
182 hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2];
183 }
184 lum = lum || 0;
185 // convert to decimal and change luminosity
186 var rgb = "#", c, i;
187 for (i = 0; i < 3; i++) {
188 c = parseInt(hex.substr(i*2,2), 16);
189 c = Math.round(Math.min(Math.max(0, c + (c * lum)), 255)).toString(16);
190 rgb += ("00"+c).substr(c.length);
191 }
192 return rgb;
193 }
194 </script>
195 </#list>
196</#macro>
197
198<script type="text/javascript">
199 searchInterno();
200</script>