commons_site.html
1 <#-- WARNING : be careful to white-space and lines break in FreeMarker macros.
2 # This macro template can be used to output white-space-sensitive formats (like RSS files).
3 # See http://dev.lutece.paris.fr/jira/browse/LUTECE-765
4 -->
5 <#include "util/standard/macro_standard.html" />
6 <#include "util/calendar/macro_datepicker.html" />
7 <#-- Do not remove this comment -->
8
9 <#macro comboSiteWithParams name default_value additionalParameters items >
10 <select id="${name}" name="${name}" ${additionalParameters} >
11 <#list items as item>
12 <#if default_value="${item.code}">
13 <option selected="selected" value="${item.code}" >${item.name}</option>
14 <#else>
15 <option value="${item.code}" >${item.name}</option>
16 </#if>
17 </#list>
18 </select>
19 </#macro>
20
21 <#macro comboSiteSortedWithParams name default_value additionalParameters items >
22 <select id="${name}" name="${name}" ${additionalParameters} >
23 <#list items?sort_by("name") as item>
24 <#if default_value="${item.code}">
25 <option selected="selected" value="${item.code}" >${item.name}</option>
26 <#else>
27 <option value="${item.code}" >${item.name}</option>
28 </#if>
29 </#list>
30 </select>
31 </#macro>
32
33 <#macro comboSiteWithParamsAndLength name default_value additionalParameters items max_length >
34 <select id="${name}" name="${name}" ${additionalParameters} >
35 <#list items as item>
36 <#if max_length < item.name?length >
37 <#assign item_new = "..." + "${item.name?substring(item.name?length-max_length+3)}" >
38 <#else>
39 <#assign item_new = "${item.name}">
40 </#if>
41 <#if default_value="${item.code}">
42 <option selected="selected" value="${item.code}" >${item_new}</option>
43 <#else>
44 <option value="${item.code}" >${item_new}</option>
45 </#if>
46 </#list>
47 </select>
48 </#macro>
49
50 <#macro comboSite name default_value items >
51 <@comboSiteWithParams name="${name}" default_value="${default_value}" additionalParameters="" items=items />
52 </#macro>
53
54 <#macro comboSiteSorted name default_value items >
55 <@comboSite name="${name}" default_value="${default_value}" items=items?sort_by("name") />
56 </#macro>
57
58 <#macro sortSite jsp_url attribute id="" >
59 <#if jsp_url?contains("?")>
60 <#assign sort_url = jsp_url + "&sorted_attribute_name=" + attribute + "&asc_sort=" />
61 <#else>
62 <#assign sort_url = jsp_url + "?sorted_attribute_name=" + attribute + "&asc_sort=" />
63 </#if>
64 <a id="sort${id!}_${attribute!}" href="${sort_url}true#sort${id!}_${attribute!}" title="#i18n{portal.util.sort.asc}" >
65 <i class="icon-chevron-up"> </i>
66 </a>
67 <a href="${sort_url}false#sort${id!}_${attribute!}" title="#i18n{portal.util.sort.desc}">
68 <i class="icon-chevron-down"> </i>
69 </a>
70 </#macro>
71
72 <#macro paginationSite paginator combo=0 form=1 nb_items_per_page=nb_items_per_page >
73 <#if (paginator.pagesCount > 1) >
74 <@paginationSitePageLinks paginator=paginator />
75 </#if>
76 <#if form == 1 >
77 <form method="post" action="">
78 </#if>
79 <div class="row-fluid">
80 <div class="pull-right" >
81 <div class="form-inline">
82 <@paginationSiteItemCount paginator=paginator combo=combo nb_items_per_page=nb_items_per_page/>
83 </div>
84 </div>
85 </div>
86 <#if form == 1 >
87 </form>
88 </#if>
89 <div class="table"></div>
90 </#macro>
91
92 <#macro paginationSitePageLinks paginator >
93 <#assign nbLinkPagesToDisplay = 10 />
94 <#assign offsetPrev = nbLinkPagesToDisplay / 2 />
95 <#assign offsetNext = nbLinkPagesToDisplay / 2 />
96 <#if ( paginator.pageCurrent <= nbLinkPagesToDisplay - offsetPrev )>
97 <#assign offsetPrev = paginator.pageCurrent - 1 />
98 <#assign offsetNext = nbLinkPagesToDisplay - offsetPrev />
99 <#elseif ( paginator.pageCurrent + offsetNext > paginator.pagesCount )>
100 <#assign offsetNext = paginator.pagesCount - paginator.pageCurrent />
101 <#assign offsetPrev = nbLinkPagesToDisplay - offsetNext />
102 </#if>
103 <div class="pagination pagination-centered">
104 <ul>
105 <#if ( paginator.pageCurrent - offsetPrev > 1 )>
106 <li>
107 <a href="${paginator.firstPageLink?xhtml}">
108 ${paginator.labelFirst}
109 </a>
110 </li>
111 </#if>
112 <#if (paginator.pageCurrent > 1) >
113 <li class="previous">
114 <a href="${paginator.previousPageLink?xhtml}">
115 ${paginator.labelPrevious}
116 </a>
117 </li>
118 <#else>
119 <li class="disabled">
120 <a href="${paginator.firstPageLink?xhtml}">${paginator.labelPrevious}</a>
121 </li>
122 </#if>
123 <#if ( paginator.pageCurrent - offsetPrev > 1 )>
124 <li>
125 <a href="${(paginator.pagesLinks?first).url?xhtml}"><strong>...</strong></a>
126 </li>
127 </#if>
128 <#list paginator.pagesLinks as link>
129 <#if ( link.index == paginator.pageCurrent )>
130 <li class="active">
131 <a href="${link.url?xhtml}">${link.name}</a>
132 </li>
133 <#else>
134 <li>
135 <a href="${link.url?xhtml}">${link.name}</a>
136 </li>
137 </#if>
138 </#list>
139 <#if ( paginator.pageCurrent + offsetNext < paginator.pagesCount )>
140 <li>
141 <a href="${(paginator.pagesLinks?last).url?xhtml}"><strong>...</strong></a>
142 </li>
143 </#if>
144 <#if (paginator.pageCurrent < paginator.pagesCount) >
145 <li class="next">
146 <a href="${paginator.nextPageLink?xhtml}">
147 ${paginator.labelNext}
148 </a>
149 </li>
150 <#if ( paginator.pageCurrent + offsetNext < paginator.pagesCount )>
151 <li class="next">
152 <a href="${paginator.lastPageLink?xhtml}">
153 ${paginator.labelLast}
154 </a>
155 </li>
156 </#if>
157 <#else>
158 <li class="disabled">
159 <a href="${paginator.lastPageLink?xhtml}">${paginator.labelNext}</a>
160 </li>
161 </#if>
162 </ul>
163 </div>
164 </#macro>
165
166 <#macro paginationSiteCombo paginator nb_items_per_page=nb_items_per_page>
167 <span class="add-on">${paginator.labelItemCountPerPage}</span>
168 <select class="input-mini" name="${paginator.itemsPerPageParameterName}" id="${paginator.itemsPerPageParameterName}" title="${paginator.labelItemCountPerPage}">
169 <#list [ "10" , "20" , "50" , "100" ] as nb>
170 <#if nb_items_per_page = nb >
171 <option selected="selected" value="${nb}">${nb}</option>
172 <#else>
173 <option value="${nb}">${nb}</option>
174 </#if>
175 </#list>
176 </select>
177 <button class="btn btn-small" type="submit" title="#i18n{portal.util.labelRefresh}"/>
178 <i class="icon-repeat"></i>
179 </button>
180 -
181 </#macro>
182
183 <#macro paginationSiteItemCount paginator combo=0 nb_items_per_page=nb_items_per_page>
184 <#-- Display combo -->
185 <#if combo == 1 >
186 <@paginationSiteCombo paginator=paginator nb_items_per_page=nb_items_per_page/>
187 </#if>
188 <#-- Display item count -->
189 <#if (paginator.labelItemCount)?? && paginator.labelItemCount?has_content>${paginator.labelItemCount} : </#if>${paginator.itemsCount}
190 </#macro>
191
192
193 <#macro item_navigationSite item_navigator>
194 <div id="item-navigator">
195 <#if (item_navigator.currentItemId > 0)>
196 <a href="${item_navigator.previousPageLink?xhtml}" title="#i18n{portal.util.labelPrevious}">
197 <i class="icon-circle-arrow-left"></i>
198 #i18n{portal.util.labelPrevious}
199 </a>
200 <#else>
201
202 </#if>
203 <#if (item_navigator.currentItemId < item_navigator.listItemSize - 1) >
204 <a href="${item_navigator.nextPageLink?xhtml}" title="#i18n{portal.util.labelNext}">
205 #i18n{portal.util.labelNext}
206 <i class="icon-circle-arrow-right"></i>
207 </a>
208 <#else>
209
210 </#if>
211 </div>
212 </#macro>
213
214
215 <#macro dataTableSite dataTableManager actionMacro="" tableClass="table table-striped table-condensed" caption=" " summary="data table" >
216 <#if 0 < dataTableManager.items?size >
217 <#if dataTableManager.enablePaginator>
218 <form class="form-inline" method="post" action="${dataTableManager.sortUrl}">
219 <#if (dataTableManager.paginator.pagesCount > 1) >
220 <@paginationSitePageLinks paginator=dataTableManager.paginator />
221 </#if>
222 <div class="pull-right">
223 <@paginationSiteItemCount paginator=dataTableManager.paginator combo=1 nb_items_per_page=dataTableManager.paginator.itemsPerPage?string/>
224 </div>
225 </form>
226 </#if>
227 <table class="${tableClass}" summary="${summary}">
228 <caption>${caption}</caption>
229 <tr>
230 <#list dataTableManager.listColumn as column>
231 <th scope="col">
232 #i18n{${column.titleKey}}
233 <#if !(column.typeColumn = "ACTION") && column.sortable>
234 <@sortSite jsp_url=dataTableManager.sortUrl attribute=column.parameterName />
235 </#if>
236 </th>
237 </#list>
238 </tr>
239 <#list dataTableManager.items as item>
240 <tr>
241 <#list dataTableManager.listColumn as column>
242 <#if column.typeColumn = "STRING">
243 <#assign propName = "item." + column.parameterName>
244 <#assign value = propName?eval>
245 <td>${value!}</td>
246 <#elseif column.typeColumn = "LABEL">
247 <#assign propName = "item." + column.parameterName>
248 <#assign value = propName?eval>
249 <td>#i18n{${value!}}</td>
250 <#elseif column.typeColumn = "BOOLEAN">
251 <#assign propName = "item." + column.parameterName>
252 <#assign value = propName?eval>
253 <#if value?? && value>
254 <td><span class="label label-success" title="#i18n{${column.labelTrue!}}"><i class="icon-ok-sign icon-white"></i>#i18n{${column.labelTrue!}}</span></td>
255 <#else>
256 <td><span class="label label-important" title="#i18n{${column.labelFalse!}}"><i class="icon-remove-sign icon-white"></i>#i18n{${column.labelFalse!}}</span></td>
257 </#if>
258 <#elseif column.typeColumn = "EMAIL">
259 <#assign propName = "item." + column.parameterName>
260 <#assign value = propName?eval>
261 <td><#if value?? && value != ""><a href="mailto:${value}" title="${value}" >${value}</a></#if></td>
262 <#elseif column.typeColumn = "ACTION">
263 <#if column.parameterName?? && column.parameterName != "">
264 <#assign macroName = column.parameterName>
265 <#elseif actionMacro?? && actionMacro != "">
266 <#assign macroName = actionMacro>
267 </#if>
268 <#if macroName?? && macroName != "">
269 <td><@.vars[macroName] item=item /></td>
270 </#if>
271 </#if>
272 </#list>
273 </tr>
274 </#list>
275 </table>
276 <#if dataTableManager.enablePaginator>
277 <form class="form-inline" method="post" action="${dataTableManager.sortUrl}">
278 <#if (dataTableManager.paginator.pagesCount > 1) >
279 <@paginationSitePageLinks paginator=dataTableManager.paginator />
280 </#if>
281 <div class="pull-right">
282 <@paginationSiteItemCount paginator=dataTableManager.paginator combo=0 nb_items_per_page=dataTableManager.paginator.itemsPerPage?string/>
283 </div>
284 </form>
285 </#if>
286 <#else>
287 #i18n{portal.util.labelNoItem}
288 </#if>
289 </#macro>
290
291 <#macro filterPanelSite dataTableManager formClass="form-horizontal" >
292 <#if dataTableManager.filterPanel.listFilter?? && 0 < dataTableManager.filterPanel.listFilter?size>
293 <form class="${formClass}" method="post" action="${dataTableManager.filterPanel.formUrl}" >
294 <fieldset>
295 <#list dataTableManager.filterPanel.listFilter as filter>
296 <div class="control-group">
297 <label class="control-label" for="description" >#i18n{${filter.filterLabel}} :</label>
298 <div class="controls">
299 <#if filter.filterType = "STRING">
300 <input type="text" name="${dataTableManager.filterPanelPrefix}${filter.parameterName}" id="${filter.parameterName}" size="30" value="${filter.value!}"/>
301 <#elseif filter.filterType = "BOOLEAN">
302 <input type="checkbox" value="true" name="${dataTableManager.filterPanelPrefix}${filter.parameterName}" id="${dataTableManager.filterPanelPrefix}${filter.parameterName}" <#if filter.value?? && filter.value = "true">checked="checked" </#if>/>
303 <#elseif filter.filterType = "DROPDOWNLIST">
304 <#if filter.value??>
305 <#assign filter_value = filter.value >
306 <#else>
307 <#assign filter_value = "" >
308 </#if>
309 <@comboSite name=dataTableManager.filterPanelPrefix+filter.parameterName default_value=filter_value items=filter.refList />
310 </#if>
311 </div>
312 </div>
313 </#list>
314 <div class="form-actions">
315 <input type="hidden" name="${dataTableManager.filterPanelPrefix}updateFilters" id="${dataTableManager.filterPanelPrefix}updateFilters" value="true" />
316 <button class="btn btn-primary btn-small" type="submit" >
317 <i class="icon-search icon-white"></i>
318 <span class="hidden-phone" >#i18n{portal.util.labelSearch}</span>
319 </button>
320 <#if dataTableManager.filterPanel.formUrl?contains("?")>
321 <#assign dataTableResetUrl = dataTableManager.filterPanel.formUrl + "&" + dataTableManager.filterPanelPrefix + "resetFilters=true" />
322 <#else>
323 <#assign dataTableResetUrl = dataTableManager.filterPanel.formUrl + "?" + dataTableManager.filterPanelPrefix + "resetFilters=true" />
324 </#if>
325 <a class="btn btn-primary btn-small" href="${dataTableResetUrl}" title="#i18n{portal.util.labelReset}">
326 <i class="icon-remove-circle icon-white"></i>
327 <span class="hidden-phone" >#i18n{portal.util.labelReset}</span>
328 </a>
329 </div>
330 </fieldset>
331 </form>
332 </#if>
333 </#macro>
334
335
336
337
338 <#macro pagination_parisintrav2_fo paginator >
339 <#assign nbLinkPages = 10 />
340 <#assign offsetPrev = nbLinkPages/2 />
341 <#assign offsetNext = nbLinkPages/2 />
342
343 <#if paginator.pageCurrent < nbLinkPages-offsetPrev>
344 <#assign offsetPrev = nbLinkPages - paginator.pageCurrent />
345 <#assign offsetNext = nbLinkPages - offsetPrev />
346 <#elseif paginator.pageCurrent > paginator.pagesCount - (nbLinkPages - offsetNext) >
347 <#assign offsetNext = nbLinkPages - (paginator.pagesCount - paginator.pageCurrent) />
348 <#assign offsetPrev = nbLinkPages - offsetNext />
349 </#if>
350 <#if (paginator.pagesCount > 1) >
351 <#if (paginator.pageCurrent > 1) >
352 <span>
353 <a href="${paginator.previousPageLink?xhtml}">
354 <img src="images/admin/skin/prev.png" alt="<" />
355 </a>
356 </span>
357 <#else>
358
359 </#if>
360 <#if paginator.pageCurrent > nbLinkPages-offsetPrev >
361 <span>
362 <a href="${paginator.firstPageLink?xhtml}">
363 1
364 </a>
365 </span>
366 </#if>
367 <#if paginator.pageCurrent > nbLinkPages-offsetPrev >
368 <span>...</span>
369 </#if>
370 <#list paginator.pagesLinks as link>
371 <#if ( link.index == paginator.pageCurrent )>
372 <span>${link.name}</span>
373 <#else>
374 <span><a href="${link.url?xhtml}">${link.name}</a></span>
375 </#if>
376 </#list>
377 <#if paginator.pageCurrent < paginator.pagesCount - (nbLinkPages-offsetNext) >
378 <span>...</span>
379 </#if>
380 <#if (paginator.pageCurrent < paginator.pagesCount) >
381 <#if paginator.pageCurrent < paginator.pagesCount - (nbLinkPages-offsetNext) >
382 <span>
383 <a href="${paginator.lastPageLink?xhtml}">
384 ${paginator.pagesCount}
385 </a>
386 </span>
387 </#if>
388 <span>
389 <a href="${paginator.nextPageLink?xhtml}">
390 <img src="images/admin/skin/next.png" alt=">" />
391 </a>
392 </span>
393 <#else>
394
395 </#if>
396 </#if>
397 </#macro>