Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> record.metadata.cige  [in template "20097#20123#55912" at line 217, column 157]

----
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: #if (record.metadata.publicationDate?...  [in template "20097#20123#55912" at line 215, column 113]
----
1<#-- instance id --> 
2<#assign instanceId = themeDisplay.getPortletDisplay().getId()?keep_after("INSTANCE_") /> 
3 
4<#-- Ricavo servizi utili in seguito --> 
5<#-- Servizio per i layout di pagina --> 
6<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
7<#-- Servizio utile per ricavare i documenti della DM --> 
8<#assign dlFileEntryLocalService = serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryLocalService') /> 
9 
10<#-- Etichette --> 
11<#assign label_vai_dettaglio = languageUtil.get(locale, "label_vai_dettaglio") /> 
12<#assign label_ordinamento = languageUtil.get(locale, "label_ordinamento") /> 
13<#assign label_numero_risultati = languageUtil.get(locale, "label_numero_risultati") /> 
14<#assign label_ricerca_testo = languageUtil.get(locale, "label_ricerca_testo") /> 
15<#assign label_placeholder_ricerca_testo = languageUtil.get(locale, "label_placeholder_ricerca_testo") /> 
16<#assign label_filtra = languageUtil.get(locale, "label_filtra") /> 
17<#assign label_tipologia = languageUtil.get(locale, "label_tipologia") /> 
18<#assign label_categorie = languageUtil.get(locale, "label_categorie") /> 
19<#assign label_categorie_tutte = languageUtil.get(locale, "label_categorie_tutte") /> 
20<#assign label_dal = languageUtil.get(locale, "label_dal") /> 
21<#assign label_al = languageUtil.get(locale, "label_al") /> 
22<#assign label_button_cerca = languageUtil.get(locale, "label_button_cerca") /> 
23 
24<#assign label_affidamenti_data_pubblicazione = languageUtil.get(locale, "label_affidamenti_data_pubblicazione") /> 
25<#assign label_affidamenti_soggetto_affidatario = languageUtil.get(locale, "label_affidamenti_soggetto_affidatario") /> 
26<#assign label_affidamenti_cig = languageUtil.get(locale, "label_affidamenti_cig") /> 
27<#assign label_affidamenti_data_affidamento = languageUtil.get(locale, "label_affidamenti_data_affidamento") /> 
28<#assign label_affidamenti_importo_affidato = languageUtil.get(locale, "label_affidamenti_importo_affidato") /> 
29 
30<#assign label_avvisi_selezione_data_pubblicazione = languageUtil.get(locale, "label_avvisi_selezione_data_pubblicazione") /> 
31<#assign label_avvisi_selezione_data_scadenza = languageUtil.get(locale, "label_avvisi_selezione_data_scadenza") /> 
32 
33<#assign label_bandi_data_pubblicazione = languageUtil.get(locale, "label_bandi_data_pubblicazione") /> 
34<#assign label_bandi_data_scadenza = languageUtil.get(locale, "label_bandi_data_scadenza") /> 
35<#assign label_bandi_importo_base = languageUtil.get(locale, "label_bandi_importo_base") /> 
36 
37<#-- Inclusione widget template con macros e relativi servizi --> 
38<#include "${templatesPath}/RICERCA_COMMON_MACROS" /> 
39 
40<#-- html --> 
41<div class="col-12"> 
42	<div class="search-template search-template-globale"> 
43		<div class="container"> 
44			<div class="row"> 
45				<div class="col-12"> 
46					 
47					<#-- titolo principale --> 
48					<h1 class="main-title mb-4">${themeDisplay.getLayout().getName(locale)}</h1> 
49				 
50					<div class="row"> 
51						<#if entries?has_content> 
52						    <#list entries as curEntry> 
53						    	<#-- colonna elenco risultati --> 
54						        <div class="order-last order-sm-last order-md-last order-lg-first col-lg-9"> 
55						        	 
56						        	<#-- barra ordinamento --> 
57						        	<div class="row"> 
58						        		<div class="col-12"> 
59						        			<div class="d-flex justify-content-end"> 
60									        	<#-- ordinamento: ricordarsi del campo hidden che deve stare nel form --> 
61												<div class="form-group"> 
62													<label for="orderBySelect" class="sr-only">${label_ordinamento}</label> 
63										        	<select class="form-control form-control-orderBy" id="orderBySelect" name="orderBySelect" onchange="changeOrder(this);"> 
64										        		<#list enabledSortFieldsAsKeyValue?keys as prop> 
65										        			<#assign isSelected = "" /> 
66										        			<#if searchInput.orderBy?has_content> 
67											        			<#if searchInput.orderBy?string == prop> 
68												        			<#assign isSelected = "selected" /> 
69											        			</#if> 
70										        			</#if> 
71										        			<option value="${prop}" ${isSelected}>${enabledSortFieldsAsKeyValue[prop]}</option> 
72														</#list>  
73										        	</select> 
74												</div> 
75						        			</div> 
76						        		</div> 
77						        	</div> 
78						        	 
79						        	<#-- numero risultati --> 
80						        	<div class="row"> 
81						        		<div class="col-12"> 
82								        	<p class="text-right">${label_numero_risultati}: <strong>${curEntry.paging.totalRecordsCount}</strong></p> 
83						        		</div> 
84						        	</div> 
85						         
86						        	<#-- elenco risultati --> 
87						        	<#if curEntry.records?has_content> 
88						        		<div class="row"> 
89						        			<div class="col-12"> 
90						                    	<#list curEntry.records as record> 
91						                    		<#if record.metadata?has_content> 
92						                    			<#-- assegno alla variabile il titolo di liferay o di struttura, ripulito dai caratteri accentati, da usare come alt o title --> 
93						                    			<#assign titoloScheda = "" /> 
94														<#if record.title?has_content> 
95							                    			<#assign titoloScheda = htmlUtil.escapeAttribute(record.title) /> 
96						                    			</#if> 
97						                    			<#if record.metadata.title?has_content && record.metadata.title.value?has_content> 
98							                    			<#assign titoloScheda = htmlUtil.escapeAttribute(record.metadata.title.value) /> 
99						                    			</#if> 
100						                    			<#-- uso la card, ha margin botto di default, per cui imposto i vari padding in modo da non avere troppo ingombro --> 
101							                    		<div class="card shadow-none border-0"> 
102							                    			<#assign existImage = false /> 
103							                    			<#-- immagine --> 
104							                    			<#-- richiamo l'immagine: fa parte di un fieldset ripetibile, e potrebbe essere una sequenza o una semplice stringa --> 
105															<#if record.metadata.image?has_content && record.metadata.image.value?has_content> 
106								                    			<#-- caso in cui ci sono più immagini --> 
107								                    			<#if record.metadata.image.value?is_sequence> 
108								                    				<#assign numImg = 0 /> 
109								                    				<#list record.metadata.image.value as curImage> 
110								                    					<#if curImage?? && curImage?has_content> 
111										                    				<#attempt> 
112												                    			<#assign existImage = true /> 
113														                    	<#assign curImageJson = jsonFactoryUtil.createJSONObject(curImage) /> 
114														                    	<#if curImageJson?? && curImageJson?has_content && curImageJson.uuid?? && curImageJson.groupId??> 
115												                    				<#assign numImg = numImg + 1 /> 
116																					<#assign curImageDLFileEntry = dlFileEntryLocalService.getFileEntryByUuidAndGroupId(curImageJson.uuid,curImageJson.groupId?number) /> 
117																					<#assign curImageUrl = "/documents/"+groupId+"/"+curImageDLFileEntry.getFolderId()+"/"+curImageDLFileEntry.getFileName()+"/"+curImageJson.uuid /> 
118																					 
119												                    				<img src="${curImageUrl}" class="image-fit-object h250" alt="${titoloScheda}"> 
120													                    		</#if> 
121										                    				<#recover> 
122										                    					<#-- in caso di problemi sull'immagine, non visualizzo nulla --> 
123										                    				</#attempt> 
124																		</#if> 
125																		<#if numImg == 1> 
126																			<#break> 
127																		</#if>	 
128								                    				</#list> 
129								                    			<#else> 
130								                    				<#-- caso in cui cè solo un'immagine --> 
131								                    				<#attempt> 
132												                    	<#assign imageJson = jsonFactoryUtil.createJSONObject(record.metadata.image.value) /> 
133												                    	<#if imageJson?? && imageJson?has_content && imageJson.uuid?? && imageJson.groupId??> 
134																			<#assign imageDLFileEntry = dlFileEntryLocalService.getFileEntryByUuidAndGroupId(imageJson.uuid,imageJson.groupId?number) /> 
135																			<#assign imageUrl = "/documents/"+groupId+"/"+imageDLFileEntry.getFolderId()+"/"+imageDLFileEntry.getFileName()+"/"+imageJson.uuid /> 
136											                    			<#assign existImage = true /> 
137											                    			 
138											                    			<img src="${imageUrl}" class="image-fit-object h250" alt="${titoloScheda}"> 
139											                    		</#if> 
140									                    			<#recover> 
141									                    				<#-- in caso di problemi sull'immagine, non visualizzo nulla -->	 
142									                    			</#attempt> 
143								                    			</#if> 
144							                    			</#if> 
145																	 
146							                    			<div class="card-body bg-white <#if existImage>px-0 pb-0<#else>p-0</#if>"> 
147							                    				 
148							                    				<#-- nome struttura + date: data di pubblicazione articolo --> 
149							                    				<div class="mb-2"> 
150								                    				<#-- nome struttura --> 
151								                    				<strong class="mr-2">${record.structureName}</strong> 
152								                    				 
153								                    				<#-- date: 
154								                    				News: data pubblicazione articolo 
155								                    				Avviso: data pubblicazione struttura 
156								                    				 --> 
157								                    				<#if record.structureName == "News"> 
158									                    				<#-- data di pubblicazione: metadato dell'articolo --> 
159									                    				<#if record.publishDate?has_content> 
160										                    				<#assign journalArticlePublishDate = dateUtil.getDate(record.publishDate, "dd MMM yyyy", locale) /> 
161																			<span class="mr-2">-</span><span>${journalArticlePublishDate}</span>		                    				 
162									                    				</#if> 
163									                    			<#elseif record.structureName == "Avviso">	 
164									                    				<#-- data di pubblicazione: struttura --> 
165																		<#if record.metadata.publicationDate?has_content && record.metadata.publicationDate.value?has_content> 
166											                    			<#assign publicationDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", record.metadata.publicationDate.value, locale) /> 
167																			<#assign publicationDate_str = dateUtil.getDate(publicationDate_DateObj, "dd MMM yyyy", locale) /> 
168											                    			 
169											                    			<#if validator.isNotNull(publicationDate_str) && publicationDate_str != ""> 
170											                    				<span class="mr-2">-</span><span>${publicationDate_str}</span> 
171																			</#if> 
172								                    					</#if>	 
173								                    				</#if> 
174							                    				</div> 
175							                    				 
176							                    				<#-- titolo di struttura --> 
177																<#if record.metadata.title?has_content && record.metadata.title.value?has_content> 
178									                    			<#if record.detailUrl?has_content> 
179										                    			<h1 class="h3 card-title check-highlight mb-2"> 
180																			<a href="${record.detailUrl}" title="${label_vai_dettaglio} ${htmlUtil.escapeAttribute(record.metadata.title.value)}">${record.metadata.title.value}</a> 
181																		</h1> 
182																	<#else> 
183										                    			<h1 class="h3 card-title check-highlight mb-2"> 
184																			${record.metadata.title.value?trim} 
185																		</h1>											 
186																	</#if> 
187								                    			</#if> 
188								                    			 
189								                    			<#-- in alcuni casi cè abstract ed in altri la descrizione, per cui cerco il primo altrimenti la seconda --> 
190								                    			<#-- abstract --> 
191								                    			<#if record.metadata.abstract?has_content && record.metadata.abstract.value?has_content> 
192																	<div class="card-text check-highlight mb-2">${record.metadata.abstract.value}</div> 
193																<#else> 
194																	<#-- description --> 
195									                    			<#if record.metadata.description?has_content && record.metadata.description.value?has_content> 
196																		<#assign description_ = htmlUtil.escape(record.metadata.description.value) /> 
197																		<#assign descriptionlength = description_?length /> 
198																		<#if descriptionlength gt 300> 
199																			<#assign description_ = description_?substring(0, 300) /> 
200																			<div class="card-text check-highlight mb-2">${description_}...</div> 
201																		<#else>	 
202																			<div class="card-text check-highlight mb-2">${record.metadata.description.value}</div> 
203																		</#if> 
204																	</#if> 
205																</#if> 
206																 
207																<#-- altre date e dati struttura: 
208																Affidamento 
209																Avviso selezione 
210																Bando 
211																 --> 
212																<#-- affidamento --> 
213																<#if record.structureName == "Affidamento"> 
214																	<#-- data di pubblicazione, soggetto affidatario, cig, data di affidamento e importo affidato --> 
215									                    			<#if (record.metadata.publicationDate?has_content && record.metadata.publicationDate.value?has_content) || 
216									                    				(record.metadata.trustee?has_content && record.metadata.trustee.value?has_content) || 
217									                    				(record.metadata.cig?has_content && record.metadata.cige.value?has_content) || 
218									                    				(record.metadata.entrustingDate?has_content && record.metadata.entrustingDate.value?has_content) || 
219									                    				(record.metadata.entrustedAmount?has_content && record.metadata.entrustedAmounte.value?has_content)> 
220									                    				<div class="bg-light rounded rounded-lg px-4 py-3 mb-2"> 
221																			<#-- data di pubblicazione --> 
222																			<#if record.metadata.publicationDate?has_content && record.metadata.publicationDate.value?has_content> 
223												                    			<#assign publicationDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", record.metadata.publicationDate.value, locale) /> 
224																				<#assign publicationDate_str = dateUtil.getDate(publicationDate_DateObj, "dd MMMM yyyy", locale) /> 
225												                    			 
226												                    			<#if validator.isNotNull(publicationDate_str) && publicationDate_str != ""> 
227												                    				<p class="my-2"><span class="text-uppercase font-sans-serif-barmeno-medium">${label_affidamenti_data_pubblicazione}</span>: <strong>${publicationDate_str}</strong></p> 
228																				</#if> 
229									                    					</#if> 
230										                    				<#-- soggetto affidatario --> 
231											                    			<#if record.metadata.trustee?has_content && record.metadata.trustee.value?has_content> 
232											                    				<p class="my-2"><span class="text-uppercase font-sans-serif-barmeno-medium">${label_affidamenti_soggetto_affidatario}</span>: <strong>${record.metadata.trustee.value}</strong></p> 
233																			</#if> 
234										                    				<#-- cig --> 
235											                    			<#if record.metadata.cig?has_content && record.metadata.cig.value?has_content> 
236											                    				<p class="my-2"><span class="text-uppercase font-sans-serif-barmeno-medium">${label_affidamenti_cig}</span>: <strong>${record.metadata.cig.value}</strong></p> 
237																			</#if> 
238																			<#-- data affidamento --> 
239																			<#if record.metadata.entrustingDate?has_content && record.metadata.entrustingDate.value?has_content> 
240												                    			<#assign entrustingDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", record.metadata.entrustingDate.value, locale) /> 
241																				<#assign entrustingDate_str = dateUtil.getDate(entrustingDate_DateObj, "dd MMMM yyyy", locale) /> 
242												                    			 
243												                    			<#if validator.isNotNull(entrustingDate_str) && entrustingDate_str != ""> 
244												                    				<p class="my-2"><span class="text-uppercase font-sans-serif-barmeno-medium">${label_affidamenti_data_affidamento}</span>: <strong>${entrustingDate_str}</strong></p> 
245																				</#if> 
246									                    					</#if> 
247										                    				<#-- importo affidato --> 
248											                    			<#if record.metadata.entrustedAmount?has_content && record.metadata.entrustedAmount.value?has_content> 
249											                    				<p class="my-2"><span class="text-uppercase font-sans-serif-barmeno-medium">${label_affidamenti_importo_affidato}</span>: <strong>${record.metadata.entrustedAmount.value}</strong></p> 
250																			</#if> 
251																		</div> 
252									                    			</#if> 
253																</#if> 
254																 
255																<#-- avviso selezione --> 
256																<#if record.structureName == "Avviso selezione"> 
257																	<#-- data di pubblicazione, data di scadenza e importo base --> 
258									                    			<#if (record.metadata.publicationDate?has_content && record.metadata.publicationDate.value?has_content) || 
259									                    				(record.metadata.expirationDate?has_content && record.metadata.expirationDate.value?has_content)> 
260									                    				<div class="bg-light rounded rounded-lg px-4 py-3 mb-2"> 
261																			<#-- data di pubblicazione --> 
262																			<#if record.metadata.publicationDate?has_content && record.metadata.publicationDate.value?has_content> 
263												                    			<#assign publicationDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", record.metadata.publicationDate.value, locale) /> 
264																				<#assign publicationDate_str = dateUtil.getDate(publicationDate_DateObj, "dd MMMM yyyy", locale) /> 
265												                    			 
266												                    			<#if validator.isNotNull(publicationDate_str) && publicationDate_str != ""> 
267												                    				<p class="my-2"><span class="text-uppercase font-sans-serif-barmeno-medium">${label_avvisi_selezione_data_pubblicazione}</span>: <strong>${publicationDate_str}</strong></p> 
268																				</#if> 
269									                    					</#if> 
270																			<#-- data di scadenza --> 
271																			<#if record.metadata.expirationDate?has_content && record.metadata.expirationDate.value?has_content> 
272												                    			<#assign expirationDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", record.metadata.expirationDate.value, locale) /> 
273																				<#assign expirationDate_str = dateUtil.getDate(expirationDate_DateObj, "dd MMMM yyyy", locale) /> 
274												                    			 
275												                    			<#if validator.isNotNull(expirationDate_str) && expirationDate_str != ""> 
276												                    				<p class="my-2"><span class="text-uppercase font-sans-serif-barmeno-medium">${label_avvisi_selezione_data_scadenza}</span>: <strong>${expirationDate_str}</strong></p> 
277																				</#if> 
278									                    					</#if> 
279																		</div> 
280									                    			</#if> 
281																</#if> 
282																 
283																<#-- bando --> 
284																<#if record.structureName == "Bando"> 
285																	<#-- data di pubblicazione, data di scadenza e importo base --> 
286									                    			<#if (record.metadata.publicationDate?has_content && record.metadata.publicationDate.value?has_content) || 
287									                    				(record.metadata.expirationDate?has_content && record.metadata.expirationDate.value?has_content) || 
288									                    				(record.metadata.baseAmount?has_content && record.metadata.baseAmount.value?has_content)> 
289									                    				<div class="bg-light rounded rounded-lg px-4 py-3 mb-2"> 
290																			<#-- data di pubblicazione --> 
291																			<#if record.metadata.publicationDate?has_content && record.metadata.publicationDate.value?has_content> 
292												                    			<#assign publicationDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", record.metadata.publicationDate.value, locale) /> 
293																				<#assign publicationDate_str = dateUtil.getDate(publicationDate_DateObj, "dd MMMM yyyy", locale) /> 
294												                    			 
295												                    			<#if validator.isNotNull(publicationDate_str) && publicationDate_str != ""> 
296												                    				<p class="my-2"><span class="text-uppercase font-sans-serif-barmeno-medium">${label_bandi_data_pubblicazione}</span>: <strong>${publicationDate_str}</strong></p> 
297																				</#if> 
298									                    					</#if> 
299																			<#-- data di scadenza --> 
300																			<#if record.metadata.expirationDate?has_content && record.metadata.expirationDate.value?has_content> 
301												                    			<#assign expirationDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", record.metadata.expirationDate.value, locale) /> 
302																				<#assign expirationDate_str = dateUtil.getDate(expirationDate_DateObj, "dd MMMM yyyy", locale) /> 
303												                    			 
304												                    			<#if validator.isNotNull(expirationDate_str) && expirationDate_str != ""> 
305												                    				<p class="my-2"><span class="text-uppercase font-sans-serif-barmeno-medium">${label_bandi_data_scadenza}</span>: <strong>${expirationDate_str}</strong></p> 
306																				</#if> 
307									                    					</#if> 
308										                    				<#-- importo base --> 
309											                    			<#if record.metadata.baseAmount?has_content && record.metadata.baseAmount.value?has_content> 
310											                    				<p class="my-2"><span class="text-uppercase font-sans-serif-barmeno-medium">${label_bandi_importo_base}</span>: <strong>${record.metadata.baseAmount.value}</strong></p> 
311																			</#if> 
312																		</div> 
313									                    			</#if> 
314																</#if> 
315																 
316							                    				<#-- metodo tramite record (ricerca) --> 
317							                    				<#-- recupero l'elenco delle categorie dall'oggetto record anzichè passando dall'articolo --> 
318							                    				<#if record.categories?? && (record.categories?size > 0)> 
319							                    					<#list record.categories as key, value> 
320																		<#if (key?? && key != 0) && (value?? && value != "")> 
321																			<div class="chip chip-simple chip-primary chip-no-link"> 
322																				<span class="chip-label">${value}</span> 
323																			</div> 
324																		</#if> 
325																	</#list> 
326							                    				</#if> 
327							                    				 
328							                    				<#-- categorie: metodo tramite api - COMMENTATO --> 
329							                    				<#-- 
330																<#assign categorie = []> 
331																<#assign categorie = getListCategoryByArticlePrimKey(record.entryClassPk) /> 
332																<#if categorie?? && (categorie?size > 0)>	 
333																	<#list categorie as cur_cat> 
334																		<#if validator.isNotNull(cur_cat) && cur_cat != ""> 
335																			<div class="chip chip-simple chip-primary chip-no-link"> 
336																				<span class="chip-label">${cur_cat.getTitle(locale)}</span> 
337																			</div> 
338																		</#if> 
339																	</#list> 
340																</#if> 
341							                    				--> 
342							                    			</div> 
343					                    				</div> 
344				                    					<#-- hr --> 
345				                    					<hr class="blue-hr bg-light my-4"> 
346							                    	</#if> 
347						                    	</#list> 
348						        			</div> 
349						        		</div> 
350				                    </#if> 
351				                     
352				                    <#-- paginazione mediante taglib--> 
353				                    <div class="row"> 
354				                    	<div class="col-12 text-center"> 
355								            <@ricerca_components["ricerca-pagination"] 
356								                currentPage=curEntry.paging.page?number 
357								                totalPages=curEntry.paging.totalPagesCount?number 
358								                paginationUrl="${portletURL}"></@> 
359				                    	</div> 
360							        </div> 
361						        </div> 
362						         
363						        <#-- colonna form ricerca: dopo breakpoint lg viene visualizzata come prima colonna --> 
364						        <div class="order-first order-sm-first corder-md-first order-lg-last col-lg-3"> 
365						        	 
366						        	<#-- form ricerca --> 
367						        	<@ricerca_components["ricerca-form"] searchUrl="${searchUrl}" method="get" id="search-globale-form"> 
368						        	 
369						        		<#-- campo hidden per ordinamento --> 
370										<input type="hidden" value="${searchInput.orderBy}" name="orderBy" id="orderByInputHidden"> 
371										 
372										<#-- campo di ricerca testuale -->					        		 
373						        		<div class="form-group mb-4"> 
374						                    <label for="input-ricerca-q">${label_ricerca_testo}</label> 
375						                    <@ricerca_components["ricerca-input-q"] cssClass="form-control"  
376												value="${searchInput.q}" 
377												placeholder="${label_placeholder_ricerca_testo}"> 
378						                    </@> 
379						                </div> 
380						                 
381						                <#-- inizio collapse che racchiude tutti i filtri: categorie e date --> 
382						                <#if structuresAsKeyValue?has_content || ((ricercaPortletConfig.configSearchByCategories == true) && (categoriesAsKeyValue?size > 0)) || ricercaPortletConfig.configShowSearchByDates == true> 
383						                	<div class="search-filters-wrapper mb-4"> 
384							                	<h2 class="h3"><a class="simple-collapse-button" data-toggle="collapse" href="#searchFilters" role="button" aria-expanded="true" aria-controls="searchFilters">${label_filtra}</a></h2> 
385							                	<div class="collapse show" id="searchFilters"> 
386							                		 
387							                		<#-- elenco strutture --> 
388													<#if structuresAsKeyValue?has_content> 
389														<div class="form-group"> 
390															<h3 class="h4">${label_tipologia}</h3> 
391															<ul class="list-unstyled ml-2"> 
392																<#list structuresAsKeyValue?keys as prop> 
393																	<#assign isChecked = "" /> 
394																	<#if searchInput.ddmStructureKeys?has_content> 
395																		<#list searchInput.ddmStructureKeys as structureKey> 
396																			<#if structureKey == prop> 
397																				<#assign isChecked = "checked" /> 
398																			</#if> 
399																		</#list> 
400																	</#if> 
401																	<li> 
402																		<div class="form-check search-form-check"> 
403																			<input class="form-check-input" type="checkbox" name="searchStructureKeys" id="structures_${prop?index}" value="${prop}" ${isChecked}> 
404																			<label class="form-check-label" for="structures_${prop?index}"> 
405																				${structuresAsKeyValue[prop]} 
406																			</label> 
407																		</div> 
408																	</li> 
409																</#list> 
410															</ul> 
411														</div> 
412													</#if> 
413							                		 
414							                		<#-- ricerca per categorie --> 
415							                		<#if (ricercaPortletConfig.configSearchByCategories == true) && (categoriesAsKeyValue?size > 0)> 
416										                <div class="form-group"> 
417										                    <#if ricercaPortletConfig.configSelectMultipleCategories == true> 
418																<#-- caso di elenco di categorie e sottocategorie indentate con nome vocabolario - sfrutta macro presente nel template RICERCA_COMMON_MACROS --> 
419																<#if ricercaPortletConfig.configAllowVocabulariesLabelFilter == true> 
420																	<h3 class="h4">${label_categorie}</h3> 
421										                    		<ul class="list-unstyled ml-2"> 
422																		<#list hierarchicalVocabulariesOptions as voKey, voValue> 
423																			<li> 
424																				<h4 class="h5">${voValue.value.label}</h4> 
425																				<@getAllCategories voValue.children /> 
426																			</li> 
427																		</#list> 
428																	</ul> 
429										                    	<#else> 
430										                    		<#-- caso di elenco categorie e sottocategorie indentate ma senza nome vocabolario - sfrutta macro presente nel template RICERCA_COMMON_MACROS --> 
431																	<#if hierarchicalCategoriesOptions?? && hierarchicalCategoriesOptions?has_content> 
432																		<h3 class="h4">${label_categorie}</h3> 
433																	 	<@getAllCategories hierarchicalCategoriesOptions /> 
434																	</#if> 
435										                    	</#if> 
436															<#else> 
437																<#-- visualizzo una select singola --> 
438																<label for="select-ricerca-categorie">${label_categorie}</label> 
439											                    <select name="categoryIds" class="form-control" id="select-ricerca-categorie"> 
440											                        <#list categoriesAsKeyValue?keys as prop> 
441											                        	<#assign isSelected = "" /> 
442											                        	<#if searchInput.categoryIds?has_content> 
443																			<#list searchInput.categoryIds as categoryId> 
444																				<#if categoryId?string == prop> 
445																					<#assign isSelected = "selected" /> 
446																				</#if> 
447																			</#list> 
448																		</#if> 
449											                            <option value="${prop}" ${isSelected}>${categoriesAsKeyValue[prop]}</option> 
450											                        </#list>   
451											                    </select> 
452															</#if> 
453										                </div> 
454													</#if> 
455									                 
456									                <#-- ricerca per date --> 
457									                <#if ricercaPortletConfig.configShowSearchByDates == true> 
458														<div class="form-group"> 
459										                    <label for="input-dateFrom">${label_dal}</label> 
460										                    <div class="input-group"> 
461										                    	<input type="text" class="form-control" name="dateFrom"  
462										                    		id="input-dateFrom" autocomplete="off"  
463										                    		placeholder="gg/mm/aaaa" 
464										                    		<#if searchInput.dateFrom?has_content> 
465													                	value="${dateUtil.getDate(searchInput.dateFrom?date, "dd/MM/yyyy", locale)}" 
466													                </#if>	 
467
468																<div class="input-group-append"> 
469																	<span class="input-group-text bg-black text-white"><span class="far fa-calendar" aria-hidden="true"></span></span> 
470																</div> 
471															</div> 
472										                </div> 
473										                <div class="form-group"> 
474										                    <label for="input-dateTo">${label_al}</label> 
475										                    <div class="input-group"> 
476										                    	<input type="text" class="form-control" name="dateTo"  
477										                    		id="input-dateTo" autocomplete="off"  
478										                    		placeholder="gg/mm/aaaa" 
479										                    		<#if searchInput.dateTo?has_content> 
480													                	value="${dateUtil.getDate(searchInput.dateTo?date, "dd/MM/yyyy", locale)}" 
481													                </#if>	 
482
483										                    	<div class="input-group-append"> 
484																	<span class="input-group-text bg-black text-white"><span class="far fa-calendar" aria-hidden="true"></span></span> 
485																</div> 
486															</div> 
487										                </div> 
488									                </#if> 
489 
490												</div> 
491											</div> 
492						                </#if> 
493						                 
494						        		<#-- pulsante di ricerca --> 
495						        		<div class="row"> 
496						        			<div class="col-12 text-center mb-4"> 
497						        				<button type="submit" class="btn btn-primary btn-block">${label_button_cerca}</button> 
498						        			</div> 
499						        		</div> 
500									</@> 
501						        </div> 
502							</#list> 
503						</#if> 
504					</div> 
505				 
506				</div> 
507			</div> 
508		</div> 
509	</div> 
510</div> 
511 
512<script> 
513	// funzione per cambiare ordinamento sull'onchange 
514	function changeOrder(elem){ 
515		$("#orderByInputHidden").val($(elem).val()); 
516		$("#search-globale-form").submit(); 
517
518	$(document).ready(function(){ 
519		// funzioni di inizializzazione per i datepicker della ricerca per date 
520		dateTimePickerInit('#input-dateFrom'); 
521		dateTimePickerInit('#input-dateTo'); 
522		$("#input-dateFrom").on("dp.change", function (e) { 
523			$('#input-dateTo').data("DateTimePicker").minDate(e.date); 
524		}); 
525		$("#input-dateTo").on("dp.change", function (e) { 
526			$('#input-dateFrom').data("DateTimePicker").maxDate(e.date); 
527		}); 
528	}) 
529</script>