Home
Funcionalidades do Sistema
Conheça
Áreas de Atuação
Acompanhe
SACE
A plataforma SACE disponibiliza, em tempo real, todas as informações produzidas pelo Sistema de Alerta Hidrológico - SAH do SGB/CPRM. São boletins de monitoramento e alerta, contendo previsões de níveis dos rios, dados de chuva e níveis dos principais rios das bacias monitoradas.
Sistemas de Alerta
-
Seca Extrema
-
Inundação Severa
-
Inundação
-
Alerta
-
Atenção
-
Normal
-
19+
Bacias Monitoradas
Consulte
Redes Institucionais
Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing:
==> jsonObj.url [in template "20096#20121#46636" at line 55, column 97]
----
Tip: It's the step after the last dot 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: #assign imgUrl = jsonObj.url [in template "20096#20121#46636" at line 55, column 81]
----
1<#assign dlService=serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
2<#assign ddmFieldLocalService=serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMFieldLocalService") />
3
4<div id="noticias">
5 <#if entries?has_content>
6 <div class="container">
7 <div class="row title">
8 <div class="col-12">
9 <div class="nossosProdutosTag" style="font-size: 15px;"><span class="nossosProdutosTagText" style="font-size: 15px;">Informe-se</span>
10 </div>
11 <br>
12 <h2 class="font-weight-bold">Notícias</h2>
13 </div>
14 </div>
15 <div class="row">
16
17 <#list entries as curEntry>
18 <#if curEntry.getClassName()=="com.liferay.journal.model.JournalArticle">
19 <#assign assetRenderer=curEntry.getAssetRenderer() />
20 <#assign journalArticle=assetRenderer.getAssetObject() />
21 <#assign ddmStructure=journalArticle.getDDMStructure() />
22 <#assign ddmForm=ddmStructure.getDDMForm() />
23 <#assign ddmFormValues=ddmFieldLocalService.getDDMFormValues(ddmForm,
24 journalArticle.getId()) />
25 <#assign ddmFormFieldValues=ddmFormValues.getDDMFormFieldValues() />
26 <#assign imageURL="/documents/" + curEntry.getGroupId() + "/" + curEntry.getEntryId()
27 + "/" />
28 <#assign titulo="" />
29 <#assign desc="" />
30 <#assign jsonObj="" />
31 <#assign viewURL=assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse,
32 curEntry) />
33 <#if assetLinkBehavior !="showFullContent" &&
34 assetRenderer.getURLViewInContext(renderRequest, renderResponse, viewURL)??>
35 <#assign viewURL=assetRenderer.getURLViewInContext(renderRequest, renderResponse,
36 viewURL) />
37 </#if>
38
39 <#list ddmFormFieldValues as fieldName>
40 <#if fieldName.getFieldReference()=='campoImagem'>
41 <#attempt>
42 <#assign jsonObj = jsonFactoryUtil.createJSONObject(fieldName.getValue().getString(locale)) />
43 <#if jsonObj=="{}">
44 <#assign imgUrl="" />
45 <#else>
46 <#assign imgUrl=jsonObj.url />
47 </#if>
48 <#recover>
49 <#assign imgUrl="" />
50 </#attempt>
51 <#assign jsonObj = jsonFactoryUtil.createJSONObject(fieldName.getValue().getString(locale)) />
52 <#if jsonObj=="{}">
53 <#assign imgUrl="" />
54 <#else>
55 <#assign imgUrl=jsonObj.url />
56 </#if>
57 </#if>
58 <#if fieldName.getFieldReference()=='campoConteudo'>
59 <#assign desc=fieldName.getValue().getString(locale) />
60 </#if>
61 <#if fieldName.getFieldReference()=='campoSumario'>
62 <#assign intro=fieldName.getValue().getString(locale) />
63 </#if>
64 <#if fieldName.getFieldReference()=='campoTextoFlag'>
65 <#assign flagtext=fieldName.getValue().getString(locale) />
66 </#if>
67 <#if fieldName.getFieldReference()=='campoCorFlag'>
68 <#assign flagtextcolor=fieldName.getValue().getString(locale) />
69 </#if>
70 <#if fieldName.getFieldReference()=='campoIconSvgFlag'>
71 <#assign flagiconsvg=fieldName.getValue().getString(locale) />
72 </#if>
73 </#list>
74
75 <#assign month = curEntry.publishDate?date?string('MM') />
76 <#assign year = curEntry.publishDate?date?string('yyyy') />
77 <#assign showImage = false />
78 <#if (year?number > 2023) || (year?number == 2023 && month?number > 10)>
79 <#assign showImage = true />
80 </#if>
81
82 <#if (curEntry?index <= 1) >
83
84 <#if curEntry?index==0>
85 <div class="col-12 col-md-5 mult-md mb-4">
86 </#if>
87 <div class="card card-md">
88 <!--
89 <#if showImage>
90 <div class="img-content">
91 <div class="img"
92 style="background-image: url(${imgUrl});">
93 </div>
94 </div>
95 </#if>
96 -->
97
98 <div class="info <#if showImage == false> w-100</#if>">
99 <div class="body">
100 <#if flagtext != "">
101 <div class="flag" style="background-color: #${flagtextcolor}">
102 <#if flagiconsvg != "">
103 <div class="icon"> ${flagiconsvg}</div>
104 </#if>
105 ${flagtext}
106 </div>
107 </#if>
108 <h4 class="mb-4 mt-2 size-up-03">${curEntry.getTitle(locale)}</h4>
109 <p>${intro}</p>
110 </div>
111 <div class="footer">
112 <a class="user-content stretched-link" href="${viewURL}">
113 <div class="left-content">
114 <p><span class="size-up-01 weight-bold d-none">${curEntry.userName}</span> <br /><span
115 class="date">${curEntry.publishDate?date?string('dd/MM/yyyy')}</span></p>
116 </div>
117 <div class="icon">
118 <svg width="15" height="14" viewBox="0 0 15 14" fill="none"
119 xmlns="http://www.w3.org/2000/svg">
120 <path
121 d="M5.9375 1.09375L6.625 0.40625C6.9375 0.125 7.40625 0.125 7.6875 0.40625L13.7812 6.46875C14.0625 6.78125 14.0625 7.25 13.7812 7.53125L7.6875 13.625C7.40625 13.9062 6.9375 13.9062 6.625 13.625L5.9375 12.9375C5.65625 12.625 5.65625 12.1562 5.9375 11.8438L9.71875 8.25H0.75C0.3125 8.25 0 7.9375 0 7.5V6.5C0 6.09375 0.3125 5.75 0.75 5.75H9.71875L5.9375 2.1875C5.65625 1.875 5.625 1.40625 5.9375 1.09375Z"
122 fill="white" />
123 </svg>
124 </div>
125 </a>
126 </div>
127 </div>
128
129 </div>
130 <#if curEntry?index==1>
131 </div>
132 </#if>
133
134
135 <#else>
136 <#if curEntry?index==2>
137 <div class="col-12 col-md-7 mult-sm mb-4">
138 </#if>
139 <div class=" card card-sm">
140 <!--
141 <#if showImage>
142 <div class="img-content">
143 <div class="img"
144 style="background-image: url(${imgUrl});">
145 </div>
146 </div>
147 </#if>
148 -->
149 <div class="info <#if showImage == false> w-100</#if>">
150 <#if flagtext != "">
151 <div class="flag" style="background-color: #${flagtextcolor}">
152 <#if flagiconsvg != "">
153 <div class="icon"> ${flagiconsvg}</div>
154 </#if>
155 ${flagtext}
156 </div>
157 </#if>
158 <h4 class="size-up-01">${curEntry.getTitle(locale)}</h4>
159 <p class="mb-1">${intro}</p>
160 <a class="user-content stretched-link" href="${viewURL}">
161 <p><span class="size-up-01 weight-bold d-none">${curEntry.userName}</span> <br /><span
162 class="date">${curEntry.publishDate?date?string('dd/MM/yyyy')}</span></p>
163 <div class="icon">
164 <svg width="15" height="14" viewBox="0 0 15 14" fill="none"
165 xmlns="http://www.w3.org/2000/svg">
166 <path
167 d="M5.9375 1.09375L6.625 0.40625C6.9375 0.125 7.40625 0.125 7.6875 0.40625L13.7812 6.46875C14.0625 6.78125 14.0625 7.25 13.7812 7.53125L7.6875 13.625C7.40625 13.9062 6.9375 13.9062 6.625 13.625L5.9375 12.9375C5.65625 12.625 5.65625 12.1562 5.9375 11.8438L9.71875 8.25H0.75C0.3125 8.25 0 7.9375 0 7.5V6.5C0 6.09375 0.3125 5.75 0.75 5.75H9.71875L5.9375 2.1875C5.65625 1.875 5.625 1.40625 5.9375 1.09375Z"
168 fill="white" />
169 </svg>
170 </div>
171 </a>
172 </div>
173 </div>
174 <#if curEntry?index==4>
175 </div>
176 </#if>
177 </#if>
178
179
180 </#if>
181 </#list>
182 </div>
183
184 </div>
185 </#if>
186</div>
187
188
189 <style>
190 #noticias {
191 background-color: var(--gray-200);
192 padding-top: 4%;
193 }
194
195 #noticias .title {
196 margin-bottom: 20%;
197 }
198
199 #noticias .title h2 {
200 color: var(--blue-500);
201 font-weight: 100;
202 }
203
204 #noticias .card {
205 border-color: var(--cyan);
206 border-radius: 35px;
207 padding: 24px;
208 height: 100%;
209 }
210
211 #noticias .card h4 {
212 color: var(--blue-500);
213 }
214
215 #noticias .card-sm .img-content {
216 position: relative;
217 margin-bottom: 32%;
218 }
219
220 #noticias .card .img-content .img {
221 background-size: cover;
222 background-position: center;
223 background-repeat: no-repeat;
224 border-radius: 24px;
225 bottom: 0;
226 position: absolute;
227 }
228
229 #noticias .card .flag {
230 background: white;
231 color: var(--white);
232 display: flex;
233 align-items: center;
234 padding: 4px;
235 border-radius: 4px;
236 width: max-content;
237 }
238
239 #noticias .card .flag .icon {
240 margin-right: 8px;
241 }
242
243
244
245 #noticias .card .info p {
246 color: var(--gray-600);
247 }
248
249 #noticias .card .user-content {
250 display: flex;
251 align-items: end;
252 justify-content: space-between;
253 text-decoration: none;
254 color: var(--black);
255 }
256
257 #noticias .card .user-content p {
258 margin: 0;
259 }
260
261 #noticias .card .user-content .picture-content img {
262 width: 48px;
263 height: 48px;
264 border-radius: 50%;
265 }
266
267
268 #noticias .card .user-content .left-content {
269 display: flex;
270 align-items: center;
271 }
272
273 #noticias .card .user-content .left-content .picture-content {
274 margin-right: 8px;
275 }
276
277 #noticias .card .user-content .icon {
278 width: 40px;
279 height: 40px;
280 }
281
282 #noticias a .icon {
283 background: var(--cyan);
284 border-radius: 50%;
285 display: flex;
286 align-items: center;
287 justify-content: center;
288 }
289
290 #noticias a:hover{
291 background: none;
292 }
293
294 #noticias a:hover .icon {
295 background: var(--blue-500);
296 transition: all 0.5s;
297 }
298
299 #noticias .weight-bold {
300 color: var(--black);
301 }
302
303 #noticias .date {
304 color: var(--gray-600);
305 }
306
307 #noticias .mult-sm {
308 display: flex;
309 flex-direction: column;
310 justify-content: space-between;
311 }
312
313 #noticias .mult-md {
314 display: flex;
315 flex-direction: column;
316 justify-content: space-evenly;
317 height: auto;
318
319 }
320
321 #noticias .card-md .img-content {
322 bottom: -20%;
323 position: relative;
324 margin-bottom: 35%;
325 }
326
327 #noticias .card-md .img-content .img {
328 width: 254px;
329 height: 161px;
330 }
331
332 #noticias .card-sm .img-content {
333 bottom: -32%;
334 }
335
336 #noticias .card-sm .img-content .img {
337 width: 264px;
338 height: 170px;
339 }
340
341
342 #noticias .card-md .info {
343 height: auto;
344 display: flex;
345 flex-direction: column;
346 justify-content: space-between;
347 }
348
349 #noticias .card-md:last-child {
350 margin: 0;
351 }
352
353 #noticias .card-sm:last-child {
354 margin: 0;
355 }
356
357
358 #noticias .link {
359 float: right;
360 display: flex;
361 align-items: center;
362 text-decoration: none;
363 padding-right: 20px;
364 }
365
366 #noticias .link .icon {
367 width: 38px;
368 height: 38px;
369 margin-left: 8px;
370 }
371
372 @media screen and (min-width: 768px) {
373
374
375 #noticias .card-sm {
376 display: flex;
377 flex-direction: row;
378 align-items: center;
379 height: '-webkit-fill-available';
380
381 }
382
383 #noticias .card-sm .img-content {
384 bottom: -50%;
385 }
386
387 #noticias .card-sm .img-content {
388 width: 60%;
389 height: 122%;
390 position: relative;
391 }
392
393 #noticias .card-sm .img-content .img {
394 height: inherit;
395 width: 90%;
396 }
397
398 #noticias .card-md .img-content {
399 height: 24%;
400 width: 90%;
401 position: relative;
402 bottom: 0%;
403 margin-bottom: -2%;
404 }
405
406 #noticias .card-md .img-content .img {
407 width: inherit;
408 height: 145%;
409 }
410
411
412 #noticias .card-md .info {
413 height: 76%;
414 width: 100%;
415 }
416
417 #noticias .card-sm .info{
418 width: 100%;
419 }
420
421 #noticias .title{
422 margin-bottom: 5%;
423 }
424
425 #noticias .mult-md {
426 margin: 0;
427 }
428
429 #noticias .info{
430 //height: 74%;
431 }
432
433 }
434
435 .dark #noticias {
436 background: var(--dark-contrast);
437 }
438
439 .dark #noticias .card {
440 background: var(--dark-background);
441 border-color: var(--dark-title);
442 }
443
444 .dark #noticias a .icon {
445 background: var(--dark-title);
446 }
447
448 .dark #noticias a:hover .icon {
449 background: var(--dark-title-orange);
450 }
451 </style>