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 + "&amp;sorted_attribute_name=" + attribute + "&amp;asc_sort=" />
 61   	<#else>
 62   		<#assign sort_url = jsp_url + "?sorted_attribute_name=" + attribute + "&amp;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">&nbsp;</i>
 66   	</a>
 67   	<a href="${sort_url}false#sort${id!}_${attribute!}" title="#i18n{portal.util.sort.desc}">
 68       	<i class="icon-chevron-down">&nbsp;</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   	&nbsp;-&nbsp;
 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   			&nbsp;&nbsp;
 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   			&nbsp;&nbsp;
 210   		</#if>
 211   	</div>
 212   </#macro>
 213   
 214   
 215   <#macro dataTableSite dataTableManager actionMacro="" tableClass="table table-striped table-condensed" caption="&nbsp;" 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 &lt; nbLinkPages-offsetPrev>
 344   		<#assign offsetPrev = nbLinkPages - paginator.pageCurrent />
 345   		<#assign offsetNext = nbLinkPages - offsetPrev />
 346   	<#elseif paginator.pageCurrent &gt; 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="&lt;" />
 355   	        </a>
 356           </span>
 357           <#else>
 358               &nbsp;&nbsp;
 359           </#if>
 360           <#if paginator.pageCurrent &gt; nbLinkPages-offsetPrev >
 361           <span>
 362   	        <a href="${paginator.firstPageLink?xhtml}">
 363   	        	1
 364   	        </a>
 365           </span>
 366           </#if>
 367           <#if paginator.pageCurrent &gt; 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 &lt; paginator.pagesCount - (nbLinkPages-offsetNext) >
 378           	<span>...</span>
 379           </#if>
 380           <#if (paginator.pageCurrent < paginator.pagesCount) >
 381   	        <#if paginator.pageCurrent &lt; 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="&gt;" />
 391   	        </a>
 392           </span>                
 393           <#else>
 394               &nbsp;&nbsp;
 395           </#if>
 396       </#if>
 397   </#macro>