null ZITO ANGELO
JOB ADMIN
Modified 17 Days ago.
An error occurred while processing the template.
Java method "com.sun.proxy.$Proxy1680.getLatestArticle(long, String)" threw an exception when invoked on com.sun.proxy.$Proxy1680 object "it.comune.milano.jacategory.service.wrapper.CdmJacategoryServicewrapper@24674afe"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign currentArticle = journalArtic... [in template "20097#20123#" at line 23, column 1] ----
1<#-- Get themeDisplay -->
2<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() />
3<#assign themeDisplay = serviceContext.getThemeDisplay() />
4
5<#-- Get SERVICE Start -->
6<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
7<#assign categoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
8<#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")>
9<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
10<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") />
11<#assign dLFileLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") />
12<#assign textFormatter = staticUtil["com.liferay.portal.kernel.util.TextFormatter"]>
13<#assign jsonFactoryUtil = serviceLocator.findService("com.liferay.portal.kernel.json.JSONFactoryUtil")/>
14<#assign cdmLocalService = serviceLocator.findService("it.comune.milano.service.service.CdmLocalService") />
15<#assign layoutLocalService = staticUtil["com.liferay.portal.kernel.service.LayoutLocalServiceUtil"]>
16<#assign dlAppServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLAppServiceUtil"] />
17<#assign dlUtil = staticUtil["com.liferay.document.library.kernel.util.DLUtil"] />
18<#assign workflowConst = staticUtil["com.liferay.portal.kernel.workflow.WorkflowConstants"] />
19<#assign pattern = staticUtil["java.util.regex.Pattern"] />
20<#-- Get SERVICE End -->
21
22<#-- Get Article Data-->
23<#assign currentArticle = journalArticleLocalService.getLatestArticle(groupId, .vars['reserved-article-id'].data)/>
24<#assign rootMioArticolo = saxReaderUtil.read(currentArticle.getContentByLocale(localeUtil.toLanguageId(localeUtil.getDefault()))).getRootElement() />
25<#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey() />
26
27<#-- Get Category e Vocabulary -->
28<#assign categoryList=categoryService.getCategories("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) >
29<#assign vocabularyProfilo = vocabularyService.getGroupVocabulary(groupId, "Profilo"?lower_case) />
30<#assign vocabularyPosizione = vocabularyService.getGroupVocabulary(groupId, "Posizione"?lower_case) />
31<#assign vocabularyDirezione = vocabularyService.getGroupVocabulary(groupId, "Direzione (DC)"?lower_case) />
32<#assign vocabularyArea = vocabularyService.getGroupVocabulary(groupId, "Area"?lower_case) />
33<#assign vocabularyStatoIncarico = vocabularyService.getGroupVocabulary(groupId, "Stato Incarico"?lower_case) />
34
35<#assign flDirigenteCessato=true>
36
37<#-- Get Related Asset -->
38<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") />
39<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
40<#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) />
41<#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() />
42<#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) />
43<#-- Get Related Asset End -->
44
45<#assign doc = "">
46<#assign relatedArticleId = "">
47<#assign arrayAllegati=[]>
48<#assign countAllegati = 0 />
49
50<#assign rootBreadcrumb = cdmLocalService.titoloRootBreadCrumb(themeDisplay, currentArticle.getDDMStructureKey())/>
51
52<#assign direzione = ""/>
53<#assign area = ""/>
54
55<style>
56 .component-title, .lfr-asset-anchor, .metadata-author {
57 display: none !important;
58 }
59
60 #_com_liferay_site_navigation_breadcrumb_web_portlet_SiteNavigationBreadcrumbPortlet_breadcrumbs-defaultScreen {
61 display: none !important;
62 }
63</style>
64
65<nav aria-label="Briciole di pane">
66 <ul class="breadcrumb breadcrumb-vertical">
67 <li class="">
68 <a href="/ricerca-dirigenti">
69 ${rootBreadcrumb}
70 </a>
71 </li>
72 <li class="active" aria-current="page">
73 ${titolo.getData()?truncate(50)}
74 </li>
75 </ul>
76</nav>
77
78<div class="row">
79 <div class="col-md-12">
80 <h2>${nominativo.getData()}</h2>
81 <section class="lista_generica">
82 <ul>
83 <li>
84 <#if categoryList?has_content>
85 <#list categoryList as categoryList>
86 <#if categoryList.vocabularyId == vocabularyProfilo.vocabularyId>
87 <p><strong>Profilo: </strong>
88 <span class="uppercase">${categoryList.getName()}</span>
89 </p>
90 </#if>
91 </#list>
92 </#if>
93 <#if categoryList?has_content>
94 <#list categoryList as categoryList>
95 <#if categoryList.vocabularyId == vocabularyPosizione.vocabularyId>
96 <p><strong>Posizione: </strong>
97 <span class="uppercase">${categoryList.getName()}</span>
98 </p>
99 </#if>
100 </#list>
101 </#if>
102 <#if categoryList?has_content>
103 <#list categoryList as categoryList>
104 <#if categoryList.vocabularyId == vocabularyDirezione.vocabularyId && categoryList.getName()?has_content>
105 <#assign direzione = categoryList.getName() />
106 <p><strong>Direzione: </strong>
107 <span class="uppercase">${categoryList.getName()}</span>
108 </p>
109 </#if>
110 </#list>
111 </#if>
112 <#if categoryList?has_content>
113 <#list categoryList as categoryList>
114 <#if categoryList.vocabularyId == vocabularyArea.vocabularyId && categoryList.getName()?has_content && categoryList.getName() != direzione>
115 <#assign area = categoryList.getName() />
116 <p><strong>Area: </strong>
117 <span class="uppercase">${categoryList.getName()}</span>
118 </p>
119 </#if>
120 </#list>
121 </#if>
122 <#if servizio?? && servizio.getData()?has_content && servizio.getData() != direzione && servizio.getData() != area>
123 <p><strong>Unità: </strong>
124 <span>${servizio.getData()}</span>
125 </p>
126 </#if>
127 <#if numProtGen?? && numProtGen.getData()?has_content>
128 <p><strong>Numero Protocollo Generale: </strong>
129 <span>${numProtGen.getData()}</span>
130 </p>
131 </#if>
132 <#if numeroProvvedimento?? && numeroProvvedimento.getData()?has_content>
133 <p><strong>Numero Provvedimento: </strong>
134 <span>${numeroProvvedimento.getData()}</span>
135 </p>
136 </#if>
137 <#if dataInizioIncarico?? && dataInizioIncarico.getData()?has_content>
138 <p><strong>Data Inizio Incarico: </strong>
139 <#assign objDatatInizioIncarico = dateUtil.parseDate('yyyy-MM-dd', dataInizioIncarico.getData(), locale)>
140 <span>${dateUtil.getDate(objDatatInizioIncarico, "dd-MM-yyyy", locale)}</span>
141 </p>
142 </#if>
143 <#if dataFineIncarico?? && dataFineIncarico.getData()?has_content>
144 <p><strong>Data Fine Incarico: </strong>
145 <#assign objDatatFineIncarico = dateUtil.parseDate('yyyy-MM-dd', dataFineIncarico.getData(), locale)>
146 <span>${dateUtil.getDate(objDatatFineIncarico, "dd-MM-yyyy", locale)}</span>
147 </p>
148 </#if>
149 <#if categoryList?has_content>
150 <#list categoryList as categoryList>
151 <#if categoryList.vocabularyId == vocabularyStatoIncarico.vocabularyId>
152 <p><strong>Stato: </strong>
153 <#if categoryList.getName()?lower_case == "Attivo"?lower_case>
154 <#assign flDirigenteCessato=false>
155 <strong class="uppercase text-success">Attivo</strong></p>
156 <#else>
157 <strong class="uppercase text-danger">Cessato</strong>
158 </#if>
159 </p>
160 </#if>
161 </#list>
162 </#if>
163 </li>
164 </ul>
165 </section>
166
167 <#if !flDirigenteCessato>
168 <#if telefono.getData() != '' || mail.getData() != ''>
169 <section id="accordionservizi1" class="accordion boxed servizi">
170 <article class="card">
171 <div class="card-header" id="headingservizi2">
172 <h4 class="mb-0">
173 <a class="collapsed" data-toggle="collapse" href="#collapseservizi2" aria-expanded="false" aria-controls="collapseservizi2">Contatti</a>
174 </h4>
175 </div>
176 <div id="collapseservizi2" data-parent="#accordionservizi1" class="collapse" role="tabpanel" aria-labelledby="headingservizi2">
177 <div class="card-body">
178 <div class="content-editor blu">
179 <#if telefono?has_content && telefono.getData() != ''>
180 <p>Telefono: ${telefono.getData()}</p>
181 </#if>
182 <#if mail?has_content && mail.getData() != ''>
183 <p>Email: ${mail.getData()}</p>
184 </#if>
185 </div>
186 </div>
187 </div>
188 </article>
189 </section>
190 </#if>
191 </#if>
192
193 <#if stipendioTabellare.getData() != '' || retribuzioneDiPosizione.getData() != '' || retribuzioneDiRisultato.getData() != '' || altro.getData() != '' || totaleannuolordo.getData() != '' || importoTrasferte.getData() != ''>
194 <section id="accordion41" class="accordion boxed">
195 <h3 class="sr-only">Accordion</h3>
196 <article class="card collegamenti">
197 <div class="card-header" id="heading41">
198 <h4 class="mb-0"> <a class="collapsed" data-toggle="collapse" href="#collapse41" aria-expanded="false" aria-controls="collapse41">Retribuzione annua lorda e importi trasferte e missioni</a></h4>
199 </div>
200 <div id="collapse41" class="collapse" role="tabpanel" aria-labelledby="heading41">
201 <div class="card-body">
202 <#if stipendioTabellare?has_content && stipendioTabellare.getData() != ''>
203 <p>Stipendio Tabellare: ${stipendioTabellare.getData()} €</p>
204 </#if>
205 <#if retribuzioneDiPosizione?has_content && retribuzioneDiPosizione.getData() != ''>
206 <p>Retribuzione di Posizione: ${retribuzioneDiPosizione.getData()} €</p>
207 </#if>
208 <#if retribuzioneDiRisultato?has_content && retribuzioneDiRisultato.getData() != ''>
209 <p>Retribuzione di Risultato: ${retribuzioneDiRisultato.getData()} €</p>
210 </#if>
211 <#if altro?has_content && altro.getData() != ''>
212 <p>Altro: ${altro.getData()} €</p>
213 </#if>
214 <#if totaleannuolordo?has_content && totaleannuolordo.getData() != ''>
215 <p>Totale Annuo Lordo: ${totaleannuolordo.getData()} €</p>
216 </#if>
217 <#if importoTrasferte?has_content && importoTrasferte.getData() != ''>
218 <p>Importo Trasferte e Missioni: ${importoTrasferte.getData()} €</p>
219 </#if>
220 </div>
221 </div>
222 </article>
223 </section>
224 </#if>
225
226 <#assign datiDiRitorno = "" />
227
228 <#list currentArticleRelatedLinks as related_entry>
229 <#assign relatedAssetEntry = assetEntryLocalService.getEntry(related_entry.getEntryId2()) />
230 <#assign relatedArticle = journalArticleLocalService.getLatestArticle(relatedAssetEntry.getClassPK()) />
231 <#assign relatedArticleStructureName = relatedArticle.getDDMStructure().getName(locale) />
232 <#if relatedArticleStructureName == 'Asset Allegati Dirigenti'>
233 <#assign datiDiRitorno = cdmLocalService.ordinaAnniAllegatiDirigenti(relatedArticle.articleId, flDirigenteCessato) />
234 <#assign countAllegati = countAllegati + 1>
235 <#assign relatedArticle2 = journalArticleLocalService.getLatestArticle(groupId, relatedArticle.getArticleId(), workflowConst.STATUS_APPROVED) />
236 <#assign doc = saxReaderUtil.read(relatedArticle2.getContentByLocale(localeUtil.toLanguageId(localeUtil.getDefault()))) />
237 </#if>
238 </#list>
239
240 <#if doc?? && doc != "" && countAllegati > 0 >
241 <section id="accordion31" class="accordion boxed">
242 <h3 class="sr-only">Accordion</h3>
243 <article class="card allegati">
244 <div class="card-header" id="heading31">
245 <h4 class="mb-0"> <a class="collapsed" data-toggle="collapse" href="#collapse31" aria-expanded="false" aria-controls="collapse31"> Allegati </a> </h4>
246 </div>
247 <div id="collapse31" class="collapse" role="tabpanel" aria-labelledby="heading31">
248 <div class="card-body">
249 <#assign rootElement = doc.getRootElement() />
250 <#assign xPathSelectorCV = saxReaderUtil.createXPath("dynamic-element[@name='allegatoCV']") />
251 <#assign allegatoCV = xPathSelectorCV.selectSingleNode(rootElement).getStringValue()?replace('\n', '') />
252 <#assign allegatoCV = allegatoCV?replace('\t', '') />
253 <#if allegatoCV?? && allegatoCV != ''>
254 <ul>
255 <#assign jsonAllegatoCV = allegatoCV?eval>
256 <#assign fileEntry = dlAppServiceUtil.getFileEntryByUuidAndGroupId(jsonAllegatoCV.uuid, groupId) />
257 <#assign urlFile = dlUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), null, " ", false, false)>
258
259 <#assign doc=getDlFileEntry(urlFile) />
260 <#if doc != ''>
261 <li class="${doc.getExtension()?lower_case}">
262 <a class="anchorNomeAllegato" href="${urlFile}" target="_blank">Curriculum Vitae</a>
263 <span>(${doc.getExtension()} - ${textFormatter.formatStorageSize(doc.size, locale)})</span>
264 <br/>
265 <em>${doc.getDescription()}</em>
266 </li>
267 </#if>
268 </ul>
269 </#if>
270
271 <#if countAllegati > 0>
272 <#assign returnSplit = datiDiRitorno?split("##") />
273 <#list returnSplit as retCiclo >
274 <#assign annoAllegatiSplit = retCiclo?split("@@")/>
275 <h4>${annoAllegatiSplit[0]}</h4>
276
277 <#if annoAllegatiSplit[1]?has_content>
278 <ul>
279 <#list annoAllegatiSplit[1]?split(";") as allegati>
280 <#assign allegatiData = allegati?split(":::")>
281 <#if allegatiData?has_content && allegatiData[2]?has_content>
282 <li class="${allegatiData[2]}">
283 <a class="anchorNomeAllegato" href="${allegatiData[1]}" target="_blank">${allegatiData[0]}</a>
284 <span>(${allegatiData[2]} - ${allegatiData[3]})</span>
285 <br/>
286 <em>${allegatiData[4]}</em>
287 </li>
288 </#if>
289 </#list>
290 </ul>
291 </#if>
292 </#list>
293 </#if>
294 </div>
295 </div>
296 </article>
297 </h3>
298 </section>
299 </#if>
300
301
302 <#-- if doc?? && doc != ''>
303 <section id="accordion31" class="accordion boxed">
304 <h3 class="sr-only">Accordion</h3>
305 <article class="card allegati">
306 <div class="card-header" id="heading31">
307 <h4 class="mb-0"> <a class="collapsed" data-toggle="collapse" href="#collapse31" aria-expanded="false" aria-controls="collapse31"> Allegati </a> </h4>
308 </div>
309 <div id="collapse31" class="collapse" role="tabpanel" aria-labelledby="heading31">
310 <div class="card-body">
311
312 <#assign rootElement = doc.getRootElement() />
313 <#assign xPathSelectorCV = saxReaderUtil.createXPath("dynamic-element[@name='allegatoCV']") />
314 <#assign xPathSelectorSeparatore = saxReaderUtil.createXPath("dynamic-element[@name='allegatiPerAnno']") />
315
316 <#assign allegatoCV = xPathSelectorCV.selectSingleNode(rootElement).getStringValue()?replace('\n', '') />
317 <#assign allegatoCV = allegatoCV?replace('\t', '') />
318 <#if allegatoCV?? && allegatoCV != ''>
319 <ul>
320 <#assign jsonAllegatoCV = allegatoCV?eval>
321 <#assign fileEntry = dlAppServiceUtil.getFileEntryByUuidAndGroupId(jsonAllegatoCV.uuid, groupId) />
322 <#assign urlFile = dlUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), null, " ", false, false)>
323
324 <#assign doc=getDlFileEntry(urlFile) />
325 <#if doc != ''>
326 <li class="${doc.getExtension()?lower_case}">
327 <a class="anchorNomeAllegato" href="${urlFile}" target="_blank">Curriculum Vitae</a>
328 <span>(${doc.getExtension()} - ${textFormatter.formatStorageSize(doc.size, locale)})</span>
329 <br/>
330 <em>${doc.getDescription()}</em>
331 </li>
332 </#if>
333 </ul>
334 </#if>
335
336 <#list xPathSelectorSeparatore.selectNodes(rootElement) as cur_separatore_allegati_anno>
337 <#assign xPathSelectorAnno = saxReaderUtil.createXPath("dynamic-element[@name='anno']") />
338 <#assign anno = xPathSelectorAnno.selectSingleNode(cur_separatore_allegati_anno).getStringValue()?replace('\n', '') />
339 <#assign anno = anno?replace('\t', '') />
340 <#assign currentYear = .now?string('yyyy')?number />
341
342 <#if !flDirigenteCessato>
343 <#assign currentYear = currentYear - 5 />
344 <#else>
345 <#assign currentYear = currentYear - 3 />
346 </#if>
347
348 <#if anno?number >= currentYear >
349 <h4>${anno}</h4>
350
351 <ul>
352 <#assign xPathSelectorAttestazioneDLgs39_2013 = saxReaderUtil.createXPath("dynamic-element[@name='attestazioneDLgs39_2013']") />
353 <#assign attestazioneDLgs39_2013 = xPathSelectorAttestazioneDLgs39_2013.selectSingleNode(cur_separatore_allegati_anno).getStringValue()?replace('\n', '') />
354 <#assign attestazioneDLgs39_2013 = attestazioneDLgs39_2013?replace('\t', '') />
355
356 <#assign xPathSelectorDichexart14comma1DLgs33_2013 = saxReaderUtil.createXPath("dynamic-element[@name='dichexart14comma1DLgs33_2013']") />
357 <#assign dichexart14comma1DLgs33_2013 = xPathSelectorDichexart14comma1DLgs33_2013.selectSingleNode(cur_separatore_allegati_anno).getStringValue()?replace('\n', '') />
358 <#assign dichexart14comma1DLgs33_2013 = dichexart14comma1DLgs33_2013?replace('\t', '') />
359
360 <#assign xPathSelectorProvvedimentoDiIncarico = saxReaderUtil.createXPath("dynamic-element[@name='provvedimentoDiIncarico']") />
361 <#assign provvedimentoDiIncarico = xPathSelectorProvvedimentoDiIncarico.selectSingleNode(cur_separatore_allegati_anno).getStringValue()?replace('\n', '') />
362 <#assign provvedimentoDiIncarico = provvedimentoDiIncarico?replace('\t', '') />
363
364 <#assign xPathSelectorDichiarazione2 = saxReaderUtil.createXPath("dynamic-element[@name='dichexart14commalettd1DLgs33_2013']") />
365 <#assign dichiarazione2 = xPathSelectorDichiarazione2.selectSingleNode(cur_separatore_allegati_anno).getStringValue()?replace('\n', '') />
366 <#assign dichiarazione2 = dichiarazione2?replace('\t', '') />
367
368 <#if attestazioneDLgs39_2013?? && attestazioneDLgs39_2013 != ''>
369 <#assign jsonAttestazioneDLgs39_2013 = attestazioneDLgs39_2013?eval>
370 <#assign fileEntry = dlAppServiceUtil.getFileEntryByUuidAndGroupId(jsonAttestazioneDLgs39_2013.uuid, groupId) />
371 <#assign urlFile = dlUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), null, " ", false, false)>
372
373 <#assign dlFile=getDlFileEntry(urlFile) />
374 <#if dlFile != ''>
375 <li class="${dlFile.getExtension()?lower_case}">
376 <a class="anchorNomeAllegato" href="${urlFile}" target="_blank">Attestazione D. Lgs. 39-2013</a>
377 <span>(${dlFile.getExtension()} - ${textFormatter.formatStorageSize(dlFile.size, locale)})</span>
378 <br/>
379 <em>${dlFile.getDescription()}</em>
380 </li>
381 </#if>
382 </#if>
383
384 <#if dichexart14comma1DLgs33_2013?? && dichexart14comma1DLgs33_2013 != ''>
385 <#assign jsonDichexart14comma1DLgs33_2013 = dichexart14comma1DLgs33_2013?eval>
386 <#assign fileEntry = dlAppServiceUtil.getFileEntryByUuidAndGroupId(jsonDichexart14comma1DLgs33_2013.uuid, groupId) />
387 <#assign urlFile = dlUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), null, " ", false, false)>
388
389 <#assign dlFile=getDlFileEntry(urlFile) />
390 <#if dlFile != ''>
391 <li class="${dlFile.getExtension()?lower_case}">
392 <a class="anchorNomeAllegato" href="${urlFile}" target="_blank">Dichiarazioni ex art. 14 comma 1-ter D.Lgs. 33-2013</a>
393 <span>(${dlFile.getExtension()} - ${textFormatter.formatStorageSize(dlFile.size, locale)})</span>
394 <br/>
395 <em>${dlFile.getDescription()}</em>
396 </li>
397 </#if>
398 </#if>
399
400 <br>
401
402 <#if provvedimentoDiIncarico?? && provvedimentoDiIncarico != ''>
403 <#assign jsonProvvedimentoDiIncarico = provvedimentoDiIncarico?eval>
404 <#assign fileEntry = dlAppServiceUtil.getFileEntryByUuidAndGroupId(jsonProvvedimentoDiIncarico.uuid, groupId) />
405 <#assign urlFile = dlUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), null, " ", false, false)>
406
407 <#assign dlFile=getDlFileEntry(urlFile) />
408 <#if dlFile != ''>
409 <li class="${dlFile.getExtension()?lower_case}">
410 <a class="anchorNomeAllegato" href="${urlFile}" target="_blank">Provvedimento di Incarico</a>
411 <span>(${dlFile.getExtension()} - ${textFormatter.formatStorageSize(dlFile.size, locale)})</span>
412 <br/>
413 <em>${dlFile.getDescription()}</em>
414 </li>
415 </#if>
416 </#if>
417
418 <#if dichiarazione2?? && dichiarazione2 != ''>
419 <#assign jsondichexart14commalettd1DLgs33_2013 = dichiarazione2?eval>
420 <#assign fileEntry = dlAppServiceUtil.getFileEntryByUuidAndGroupId(jsondichexart14commalettd1DLgs33_2013.uuid, groupId) />
421 <#assign urlFile = dlUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), null, " ", false, false)>
422
423 <#assign dlFile=getDlFileEntry(urlFile) />
424 <#if dlFile != ''>
425 <li class="${dlFile.getExtension()?lower_case}">
426 <a class="anchorNomeAllegato" href="${urlFile}" target="_blank">Dichiarazioni ex art. 14 comma 1 lett.d) ed e), D.Lgs. 33-2013</a>
427 <span>(${dlFile.getExtension()} - ${textFormatter.formatStorageSize(dlFile.size, locale)})</span>
428 <br/>
429 <em>${dlFile.getDescription()}</em>
430 </li>
431 </#if>
432 </#if>
433
434 </ul>
435 </#if>
436 </#list>
437
438 </div>
439 </div>
440 </article>
441 </section>
442 </#if-->
443
444 <#-- if allegatoCV.getData() != '' || attestazioneDLgs39_2013.getData() != '' || dichexart14comma1DLgs33_2013.getData() != '' || provvedimentoDiIncarico.getData() != ''>
445 <section id="accordion31" class="accordion boxed">
446 <h3 class="sr-only">Accordion</h3>
447 <article class="card allegati">
448 <div class="card-header" id="heading31">
449 <h4 class="mb-0"> <a class="collapsed" data-toggle="collapse" href="#collapse31" aria-expanded="false" aria-controls="collapse31"> Allegati </a> </h4>
450 </div>
451 <div id="collapse31" class="collapse" role="tabpanel" aria-labelledby="heading31">
452 <div class="card-body">
453 <ul>
454 <#if allegatoCV?has_content && allegatoCV.getData() != ''>
455 <#assign doc=getDlFileEntry(allegatoCV.getData()) />
456 <#if doc != ''>
457 <li class="${doc.getExtension()?lower_case}">
458 <a href="${allegatoCV.getData()}" target="_blank">Curriculum Vitae</a>
459 <span>(${doc.getExtension()} - ${textFormatter.formatStorageSize(doc.size, locale)})</span>
460 </li>
461 </#if>
462 </#if>
463 <#if !flDirigenteCessato>
464 <#if attestazioneDLgs39_2013?has_content && attestazioneDLgs39_2013.getData() != ''>
465 <#assign doc=getDlFileEntry(attestazioneDLgs39_2013.getData()) />
466 <#if doc != ''>
467 <li class="${doc.getExtension()?lower_case}">
468 <a href="${attestazioneDLgs39_2013.getData()}" target="_blank">Attestazione D. Lgs. 39-2013</a>
469 <span>(${doc.getExtension()} - ${textFormatter.formatStorageSize(doc.size, locale)})</span>
470 </li>
471 </#if>
472 </#if>
473 <#if dichexart14comma1DLgs33_2013?has_content && dichexart14comma1DLgs33_2013.getData() != ''>
474 <#assign doc=getDlFileEntry(dichexart14comma1DLgs33_2013.getData()) />
475 <#if doc != ''>
476 <li class="${doc.getExtension()?lower_case}">
477 <a href="${dichexart14comma1DLgs33_2013.getData()}" target="_blank">Dichiarazioni ex art. 14 comma 1 D.Lgs. 33-2013</a>
478 <span>(${doc.getExtension()} - ${textFormatter.formatStorageSize(doc.size, locale)})</span>
479 </li>
480 </#if>
481 </#if>
482 <#if provvedimentoDiIncarico?has_content && provvedimentoDiIncarico.getData() != ''>
483 <#assign doc=getDlFileEntry(provvedimentoDiIncarico.getData()) />
484 <#if doc != ''>
485 <li class="${doc.getExtension()?lower_case}">
486 <a href="${provvedimentoDiIncarico.getData()}" target="_blank">Provvedimento di Incarico</a>
487 <span>(${doc.getExtension()} - ${textFormatter.formatStorageSize(doc.size, locale)})</span>
488 </li>
489 </#if>
490 </#if>
491 </#if>
492 </ul>
493 </div>
494 </div>
495 </article>
496 </section>
497 </#if-->
498
499 <section class="infopage">
500 <#if validator.isNotNull(currentArticle.getModifiedDate())>
501 <p class="updatedpage">Aggiornato il: ${dateUtil.getDate(currentArticle.getModifiedDate(), "dd/MM/yyyy", locale)}</p>
502 </#if>
503 <div>
504 <p class="printpage">
505 <a href="#" onclick="window.print();" title="stampa il contenuto di questa pagina">Stampa<span class="sr-only"> questa pagina</span></a>
506 </p>
507 </div>
508 </section>
509
510 </div>
511</div>
512
513<#function getDlFileEntry url>
514 <#assign parts=url?string?split("/") />
515
516 <#assign groupId=0 />
517 <#assign uuid='' />
518 <#assign dlFileEntry='' />
519
520 <#list parts as curPart>
521
522 <#if curPart_index == 2>
523 <#assign groupId=parts[2]?number />
524 </#if>
525
526 <#if curPart_index == 5>
527 <#assign uuid=parts[5]?string?split("?")[0] />
528 </#if>
529 </#list>
530
531 <#if groupId != 0 && uuid != ''>
532 <#assign dlFileEntry=dLFileLocalService.fetchDLFileEntryByUuidAndGroupId(uuid, groupId)! />
533 </#if>
534
535 <#return dlFileEntry />
536
537</#function>
538
539<script type="text/javascript" src="https://getbootstrap.com/docs/4.0/dist/js/bootstrap.min.js"></script>
540<script type="text/javascript">
541// Codice JS per lo scrollTop all'apertura dell'accordion
542$('.collapse').on('shown.bs.collapse', function(e) {
543 var $card = $(this).closest('.card'),
544 $card_offset = $card.offset().top,
545 $header_group_h = $('.group-header').outerHeight(); // Altezza del gruppo header (inclusi margin, padding e border)
546 $('html,body').animate({
547 scrollTop: $card_offset - $header_group_h
548 }, 200);
549});
550</script>