002144_TempeteCiaran - Catnat
Une erreur s'est produite lors du traitement du gabarit.
The string doesn't match the expected date/time/date-time format. The string to parse was: "". The expected format was: "yyyy-MM-dd hh:mm:ss.SSS". The nested reason given follows: Unparseable date: "" ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign dateModificationStr = dateMod... [in template "20101#20128#36857" at line 34, column 10] ----
1<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()>
2<#assign themeDisplay = serviceContext.getThemeDisplay() />
3
4
5<#-- --# -- main -->
6<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService" ) >
7
8<#assign dateModificationStr = "">
9<#assign dateDebutStr = "">
10<#assign dateFinStr = "">
11<#assign commentaireCoutPrincipal = "">
12<#assign imageCoutPrincipal = "">
13
14<#assign catnatServiceUtil = utilLocator.findUtil('catnat-services-hook', 'fr.catnat.services.CatNatServiceUtil')>
15<#attempt>
16 <#assign infosEvenement = catnatServiceUtil.getInfoEvenement(Numero_AGIR.getData())>
17 <#recover>
18 <#assign infosEvenement = [] >
19 </#attempt>
20
21<#if (infosEvenement?has_content)>
22 <#assign jsonResponse = jsonFactoryUtil.createJSONObject(infosEvenement)>
23 <#setting time_zone = "Europe/Paris">
24 <#setting time_zone = languageUtil.get(locale, "template-timezone")>
25
26 <#assign originalLocale = locale>
27
28 <#if jsonResponse.get('dateModification')?is_number>
29 <#assign dateModification = jsonResponse.getLong('dateModification') + 10800000>
30 <#assign dateModification = dateModification?number_to_datetime>
31 <#assign dateModificationStr = dateModification?date?string("dd/MM/yyyy")>
32 <#else>
33 <#assign dateModification = jsonResponse.getString('dateModification')>
34 <#assign dateModificationStr = dateModification?datetime("yyyy-MM-dd hh:mm:ss.SSS")?string("dd/MM/yyyy")>
35 </#if>
36
37
38 <#if jsonResponse.get('dateDebut')?is_number>
39 <#assign dateDebut = jsonResponse.getLong('dateDebut') + 10800000>
40 <#assign dateDebut = dateDebut?number_to_datetime>
41 <#assign dateDebutStr = dateDebut?date?string("dd/MM/yyyy")>
42 <#else>
43 <#assign dateDebut = jsonResponse.getString('dateDebut')>
44 <#assign dateDebutStr = dateDebut?date("yyyy-MM-dd")>
45
46 </#if>
47 <#if jsonResponse.get('dateFin')?is_number>
48 <#assign dateFin = jsonResponse.getLong('dateFin') + 10800000>
49
50 <#assign dateFin = dateFin?number_to_datetime>
51 <#assign dateFinStr = dateFin?date?string("dd/MM/yyyy")>
52 <#else>
53 <#assign dateFin = jsonResponse.getString('dateFin')>
54 <#assign dateFinStr = dateFin?date("yyyy-MM-dd")>
55
56 </#if>
57
58</#if>
59
60<#-- # -- main -->
61 <#assign assetUrlToRedirect = journalArticleLocalService.getDisplayArticleByUrlTitle(groupId, .vars['reserved-article-url-title'].data)>
62
63<#if jsonResponse.getJSONObject('vueMarche') != "null">
64 <#assign vueMarche = jsonResponse.getJSONObject('vueMarche')>
65</#if>
66
67<#-- #Prendre en compte le flag "Afficher cout" dans la contribution Liferay-->
68<#assign typeEvenement = jsonResponse.getString('typeEvenement')>
69<#assign title = jsonResponse.getString('libelle')>
70
71<#-- <#assign currentUrl = request.get("attributes").CURRENT_COMPLETE_URL > -->
72 <#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() />
73<#assign imageShare = "" >
74<style>
75 @media (max-width: 767px) {
76 #event_actions {
77 display: none;
78 }
79 .fa-download {
80 display: none;
81 }
82
83 #deptTrunc{
84 display: none;
85 }
86
87 #deptAll{
88 display: inline !important;
89 }
90 }
91</style>
92<script>
93function printEvent()
94{
95 var eventElement = document.getElementById('event_catnat');
96 var mywindow = window.open('', 'PRINT', '');
97 var printCss = document.getElementById('deptTrunc');
98
99 printCss.innerHTML = document.getElementById('deptAll').innerHTML;
100
101 mywindow.document.write('<html><head><title>' + document.title + '</title>');
102 mywindow.document.write('</head><body >');
103 mywindow.document.write('<h1>' + document.title + '</h1>');
104 mywindow.document.write(eventElement.innerHTML);
105 mywindow.document.write('</body></html>');
106 printCss
107
108 mywindow.document.close(); // necessary for IE >= 10
109 mywindow.focus(); // necessary for IE >= 10*/
110
111 mywindow.print();
112 mywindow.close();
113
114 return true;
115}
116
117<#--function downloadPDF (){
118 return printEvent();
119}-->
120
121var numeroAgir = '${Numero_AGIR.getData()}';
122
123function displayArretes(callback) {
124 callback(0, 8, false, '${Numero_AGIR.getData()}');
125}
126
127</script>
128
129<div class="main-wrapper" id="event_catnat">
130 <div class="display-3 primary">${title}</div>
131 <p> <span class="event_subtitle-txt">
132 Mise à jour le ${dateModificationStr}</span></p>
133 <br>
134 <div class="row">
135 <div class="col-md-8" style="padding: 0;">
136 <#if (!Image_principale.getData()?has_content)>
137 <img src="/images/favicon/mstile-70x70.png" alt="Image Evenement">
138 <#else>
139 <img src="${Image_principale.getData()}" class="event_img" alt="Image Evenement"/>
140 </#if>
141
142
143
144 <#if (validator.isNotNull(Resume.getData()))>
145 <div class="display-5 primary mt-4">${Resume.getData()}</div>
146 </#if>
147 </div>
148
149 <div class="col-md-4" style="padding: 0;">
150 <table style="width: 100%;border-spacing: 0px;" border="0">
151 <tbody>
152 <tr>
153 <td style="padding:15px;text-align: left; background-color: #f3f3f3;">
154 <table style="width:100%">
155 <tbody>
156 <tr>
157 <#if (validator.isNotNull(Information_cle_1_Valeur.getData()))>
158 <td width="60%"><span class="event_info_title">${Information_cle_1_Valeur.getData()}</span><br><span class="event_info" style="color: #1a5b81; font-weight: bold;">${Information_cle_1_Label.getData()}</span></td>
159 </#if>
160 <#if (validator.isNotNull(Information_cle_2_Valeur.getData()))>
161 <td><span class="event_info_title">${Information_cle_2_Valeur.getData()}</span><br><span class="event_info" style="color: #1a5b81;font-weight: bold;">${Information_cle_2_Label.getData()}</span> </td>
162 </#if>
163 <#-- --# Si mise en avant absente => Renseigner le coût de l'événement.-->
164 <#if (validator.isNull(Information_cle_1_Valeur.getData()) && validator.isNull(Information_cle_2_Valeur.getData()) && getterUtil.getBoolean(Afficher_cout.getData()))>
165 <#assign coutMarche = vueMarche.getJSONObject('cout')>
166 <td>
167 <span class="event_info_title" style="font-size: 24px;">${coutMarche.getString("coutStr")}</span><br>
168
169 <span class="event_info" style="color: #1a5b81; font-weight: bold;">
170 <#if (validator.isNotNull(Information_cle_cout.getData()))>
171 ${Information_cle_cout.getData()}
172 <#else>
173 Dommages assuré hors automobile
174 </#if>
175 </span>
176 </td>
177 </#if>
178 </tr>
179 </tbody>
180 </table>
181 <hr class="title-category-hr-chatams-blue" style="margin-top: 10px;margin-bottom: 10px;">
182 <table style="width:100%">
183 <tr>
184 <td width="60%">
185 <b>Date de début </b>
186 <br>
187 <span class="event_info">${dateDebutStr}</span>
188 </td>
189 <td>
190 <b>Date de fin</b>
191 <br>
192 <span class="event_info">${dateFinStr}</span>
193 </td>
194 </tr>
195 </table>
196
197 <#if (validator.isNotNull(Cours_eau.getData()))>
198 <br>
199 <b>Cours d'eau ayant débordé</b><br>
200 <p>${Cours_eau.getData()}</p>
201 </#if>
202
203 <#if (validator.isNotNull(jsonResponse.getString('pluviometrie1H'))|| validator.isNotNull(jsonResponse.getString('pluviometrie24H')))>
204 <br>
205 <br>
206 <b>Pluviométrie maximale</b>
207 <br>
208 <p>
209 <#if (validator.isNotNull(jsonResponse.getString('pluviometrie1H')))>
210 ${jsonResponse.getString('pluviometrie1H')} mm en 1h
211 </#if>
212 <#if (validator.isNotNull(jsonResponse.getString('pluviometrie1H')))>
213 <br>
214 ${jsonResponse.getString('pluviometrie24H')} mm en 24 h
215 </#if>
216 </p>
217 </#if>
218 <br>
219 <br>
220 <b>Départements concernés</b> <br>
221 <#assign deps = jsonResponse.getJSONArray('departementsTouches')>
222 <#assign fin = deps.length() - 1>
223
224 <#assign depsStr = "">
225 <#assign allDepsStr = "">
226 <#assign allDepsPrint = "">
227 <#list 0..fin as i>
228 <#assign dep = deps.getString(i)>
229 <#if i != 0>
230 <#assign separator = ', '>
231 <#else>
232 <#assign separator = ''>
233 </#if>
234
235 <#assign allDepsStr = allDepsStr + separator + dep>
236 <#if i < 6>
237 <#assign depsStr = depsStr + separator +dep>
238 </#if>
239 </#list>
240 <#if deps?length gt 6>
241 <#assign depsStr = depsStr + " ... ">
242
243 </#if>
244
245
246 <span id="deptTrunc" class="event_info" title="${allDepsStr}">
247 ${depsStr}
248 </span>
249
250 <span id="deptAll" class="event_info" style="display: none;">
251 ${allDepsStr}
252 </span>
253 <br>
254 <br>
255 <div class="pull-right" id="event_actions">
256
257 <#--<a href="#" OnClick="javascript:downloadPDF()" title="Telecharger le document"><i style="color:#1a5b81;font-size: 1.8em;" class="fas fa-download"></i></a>-->
258 <a href="#" OnClick="javascript:printEvent()" title="Imprimer le document"><i style="color:#1a5b81;font-size: 1.8em;" class="fas fa-print"></i></a>
259 </div>
260
261 </td>
262 </tr>
263 </tbody>
264 </table>
265 </div>
266 </div>
267 <br>
268
269
270
271 <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true" style="text-align:justify">
272
273 <#if (validator.isNotNull(Description.getData()))>
274 <div class="panel panel-default">
275 <div class="panel-heading" role="tab" id="heading1">
276 <a role="button" data-toggle="collapse" href="#collapse1" aria-expanded="true" aria-controls="collapse1" class="collapse-head collapsed">
277 <h4 class="panel-title">
278 <span class="event_description_title">DESCRIPTION DE L'EVENEMENT</span>
279 </h4>
280 </a>
281 </div>
282 <div id="collapse1" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading1">
283 <div class="panel-body">
284 ${Description.getData()}
285 </div>
286 </div>
287 </div>
288 </#if>
289
290
291 <#if (validator.isNotNull(Dommages.getData()))>
292
293 <div class="panel panel-default">
294
295 <div class="panel-heading" role="tab" id="heading2">
296 <a role="button" data-toggle="collapse" href="#collapse2" aria-expanded="false" aria-controls="collapse2" class="collapse-head collapsed">
297 <h4 class="panel-title">
298 <span class="event_description_title">DOMMAGES CONSTATES</span>
299 </h4>
300 </a>
301 </div>
302
303 <div id="collapse2" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading2">
304 <div class="panel-body">
305 ${Dommages.getData()}
306 </div>
307 </div>
308 </div>
309 </#if>
310
311
312
313 <#assign communes = jsonResponse.getJSONArray('communesTouchees')>
314 <#if validator.isNotNull(communes) && communes?length gt 0 && communes != "[]">
315 <div class="panel panel-default">
316 <div class="panel-heading" role="tab" id="heading3">
317 <a role="button" data-toggle="collapse" href="#collapse3" aria-expanded="false" aria-controls="collapse3" class="collapse-head collapsed">
318 <h4 class="panel-title">
319 <span class="event_description_title"> COMMUNES LES PLUS SINISTREES</span>
320 </h4>
321 </a>
322 </div>
323 <div id="collapse3" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading3">
324 <div class="panel-body">
325
326 <#assign fin = communes?length - 1>
327 <#list 0..fin as i>
328 <#assign commune = communes.getString(i)>
329 <#if commune??>
330 <p>${commune}</p>
331 </#if>
332 </#list>
333 </div>
334 </div>
335 </div>
336 </#if>
337
338
339
340
341 <#assign vueMarche = jsonResponse.getJSONObject('vueMarche')>
342
343 <#-- --#Prendre en compte le flag "Afficher cout" dans la contribution Liferay-->
344 <#assign typeEvenement = jsonResponse.getString('typeEvenement')>
345
346 <#if (getterUtil.getBoolean(Afficher_cout.getData()))>
347
348 <div class="panel panel-default">
349 <div class="panel-heading" role="tab" id="heading4">
350 <a role="button" data-toggle="collapse" href="#collapse4" aria-expanded="true" aria-controls="collapse4" class="collapse-head collapsed">
351 <h4 class="panel-title">
352 <span class="event_description_title">COÛT DE L'EVENEMENT</span>
353 </h4>
354 </a>
355 </div>
356 <div id="collapse4" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading4">
357 <div class="panel-body">
358 <#assign coutMarche = vueMarche.getJSONObject('cout')>
359 <#if coutMarche.get('dateCout')?is_number>
360 <#assign dateCoutPrincipal = coutMarche.getLong('dateCout') + 10800000>
361 <#assign dateCoutPrincipal = dateCoutPrincipal?number_to_datetime>
362 <#assign dateCoutPrincipalStr = dateCoutPrincipal?date?string("dd/MM/yyyy")>
363 <#else>
364 <#assign dateCoutPrincipalStr = coutMarche.getString("dateCout")?datetime("yyyy-MM-dd")?string("dd/MM/yyyy")>
365 </#if>
366
367 <p><b>${coutMarche.getString("coutStr")}</b>
368
369 <#if (cout.getSiblings()?has_content)>
370 <#-- # Récupération du commentaire (liferay) correspondant au cout principal
371 ## Parcours de la liste des couts du document liferay, pour trouver le commentaire correspondant au cout recu via le service web-->
372 <#list cout.getSiblings() as cur_cout>
373 <#assign cout_Data = cur_cout.getData()>
374 <#if cout_Data?has_content>
375 <#assign cout_DateObj =cout_Data>
376
377 <#assign coutDate = cout_DateObj?datetime("yyyy-mm-dd")?string("dd/MM/yyyy")>
378 <#-- TODO Must check this Part -->
379 <#-- <#if (coutDate == dateCoutPrincipalStr)> -->
380 <#assign commentaireCoutPrincipal = getterUtil.getString(cur_cout.getChild("Commentaire_cout").getData())>
381 <#assign imageCoutPrincipal = cur_cout.getChild("Image_cout_par_commune").getData()>
382 <#-- </#if> -->
383
384 </#if>
385 </#list>
386 </#if>
387 (mise à jour le : ${dateCoutPrincipalStr}) </p>
388
389 <#if (validator.isNotNull(commentaireCoutPrincipal))>
390 <p>${commentaireCoutPrincipal}</p>
391 </#if>
392
393 <#if (validator.isNotNull(imageCoutPrincipal))>
394 <img alt="Cout par commune pour l'ensemble du marché" style="width:100%;" src="${imageCoutPrincipal}" />
395 </#if>
396
397 <br>
398
399 <#if vueMarche.get('coutsPrecedents') != "null">
400
401 <#assign coutsPrecedents = vueMarche.getJSONArray('coutsPrecedents')>
402 <#if validator.isNotNull(coutsPrecedents) && coutsPrecedents?length gt 0>
403
404 <p><b>Rappel des estimations précedentes</b></p>
405 <#assign fin = coutsPrecedents.length() - 1>
406 <#list 0..fin as i>
407 <#if coutsPrecedents.get(i).get('dateCout')?is_number>
408 <#assign dateCoutPrecedent = coutsPrecedents.get(i).getString('dateCout')?number + 10800000>
409 <#assign dateCoutPrecedent = dateCoutPrecedent?number_to_datetime>
410 <#assign dateCoutPrecedentStr = dateCoutPrecedent?date?string("dd/MM/yyyy")>
411 <#else>
412 <#assign dateCoutPrecedentStr = coutsPrecedents.get(i).get('dateCout')?datetime("yyyy-mm-dd")?string("dd/MM/yyyy")>
413 </#if>
414
415
416 <#-- TODO -->
417 <#list cout.getSiblings() as cur_cout>
418 <#assign cout_DateObj = cur_cout.getData()>
419 <#assign coutDate = cout_DateObj?datetime("yyyy-MM-dd")?string("dd/MM/yyyy")>
420 <#-- TODO (Must Check this Part) -->
421 <#-- <#if coutDate==dateCoutPrecedentStr> -->
422 <#assign commentaireCout = getterUtil.getString(cur_cout.getChild("Commentaire_cout").getData())?replace("<p>","")?replace("</p>","")>
423 <p>Le ${dateCoutPrecedentStr} : <b>${coutsPrecedents.get(i).getString("coutStr")}</b> (${commentaireCout})</p>
424 <#-- </#if> -->
425 </#list>
426
427 </#list>
428 </#if>
429 </#if>
430
431 </div>
432 </div>
433 </div>
434 </#if>
435 <div class="panel panel-default">
436 <div class="panel-heading" role="tab" id="heading5">
437 <a role="button" data-toggle="collapse" href="#collapse5" aria-expanded="true" aria-controls="collapse5" class="collapse-head collapsed">
438 <h4 class="panel-title">
439 <span class="event_description_title">RECONNAISSANCES CAT NAT</span>
440 </h4>
441 </a>
442
443 </div>
444 <div id="collapse5" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading5">
445 <div class="panel-body">
446 <p>Nombre de communes reconnues Cat Nat : <b>${vueMarche.getString("nombreCommunesReconnuesCatNat")}</b> </p>
447
448 <#if (validator.isNotNull(Image_reco.getData()))>
449 <img style="max-width:800px;width:100%" alt="Communes reconnues en 굡t de catastrophes naturelle" src="${Image_reco.getData()}" />
450 </#if>
451 </div>
452 </div>
453 </div>
454
455 <#if (validator.isNotNull(Source.getData()))>
456 <div class="panel panel-default">
457 <div class="panel-heading" role="tab" id="heading6">
458 <a role="button" data-toggle="collapse" href="#collapse6" aria-expanded="true" aria-controls="collapse6" class="collapse-head collapsed">
459 <h4 class="panel-title">
460 <span class="event_description_title">SOURCES</span>
461 </h4>
462 </a>
463 </div>
464 <div id="collapse6" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading6">
465 <div class="panel-body">
466 ${Source.getData()}
467 </div>
468 </div>
469 </div>
470 </#if>
471
472
473 </div>
474
475
476</div>
477<#--
478<div class="ssk-sticky ssk-left ssk-center ssk-lg">
479
480<#assign resumeEvenementSafe = Resume.getData()?replace("\'", "\\'") >
481<#assign resumeEvenementSafe = resumeEvenementSafe?replace("'", "\\'") >
482
483<a href="#" class="ssk ssk-facebook" data-ssk-ready="true" onclick="shareFacebook(${title},${title},${imageShare}, ${currentUrl}, false); return false;"></a>
484<a href="" class="ssk ssk-twitter" data-ssk-ready="true" onclick="window.open('http://twitter.com/share?text=${title}&url=${currentUrl}', 'twitter-share-dialog', 'menubar=no,toolbar=no,resizable=yes,scrollbars=no, width=800,height=500');return false;"></a>
485<a href="#" class="ssk ssk-linkedin" data-ssk-ready="true" onclick="window.open('https://www.linkedin.com/shareArticle?mini=true&url=${currentUrl}', 'linkedin-share-dialog', 'menubar=no,toolbar=no,resizable=yes,scrollbars=no,width=800,height=500');return false;"></a>
486
487</div>
488-->
Cookies I
© - CCR 2024 Tous droits réservés