id="${id}"#if><#if class!=''> class="${class?trim}"#if><#if params!=''> ${params}#if>>
#macro>
<#-- MACRO TR -->
<#macro tr id='' class='' hide=[] params=''>
<#local class += ' ' + displaySettings(hide,'') + ' ' + alignmentSettings(align) />
id="${id}"#if><#if class!=''> class="${class?trim}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#-- MACRO TH -->
<#-- valign: baseline|top|middle|bottom|bottom|text-top -->
<#macro th id='' title='' scope='' class='' align='' valign='' hide=[] cols=0 xs=0 sm=0 md=0 lg=0 xl=0 colspan=0 rowspan=0 flex=false params=''>
<#local class += ' ' + displaySettings(hide,'') + ' ' + alignmentSettings(align,'text') />
<#local breakpoints = {'xs':xs, 'sm':sm, 'md':md, 'lg':lg, 'xl':xl}>
<#list breakpoints as breakpointkey,breakpointvalue>
<#if breakpointvalue!=0>
<#local class += ' col-${breakpointkey}-${breakpointvalue}' />
#if>
#list>
style="vertical-align:${valign};"#if><#if flex> style="display:flex;"#if><#if id!=''> id="${id}"#if><#if title!=''> title="${title}"#if><#if scope!=''> scope="${scope}"#if><#if colspan gt 0> colspan="${colspan}"#if><#if rowspan gt 0> rowspan="${rowspan}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#-- MACRO TD -->
<#-- valign: baseline|top|middle|bottom|bottom|text-top -->
<#macro td id='' class='' hide=[] align='' valign='' xs=0 sm=0 md=0 lg=0 xl=0 colspan=0 rowspan=0 flex=false params='' deprecated...>
<@deprecatedWarning args=deprecated />
<#local class += ' ' + displaySettings(hide,'') + ' ' + alignmentSettings(align,'text') />
<#local breakpoints = {'xs':xs, 'sm':sm, 'md':md, 'lg':lg, 'xl':xl}>
<#local class += ' ' + responsiveDisplay('col',{'xs':xs, 'sm':sm, 'md':md, 'lg':lg, 'xl':xl}) />
style="vertical-align:${valign};"#if><#if flex> style="display:flex;"#if><#if id!=''> id="${id}"#if><#if colspan gt 0> colspan="${colspan}"#if><#if rowspan gt 0> rowspan="${rowspan}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#--- MACRO SELECT (TO REPLACE "COMBO" MACROS) --->
<#macro select name items='' default_value='' id=name class='' size='' sort=false multiple=0 params='' title='' disabled=false tabIndex=0 maxLength=0 mandatory=false>
<#if propagateMandatory?? && propagateMandatory ><#local mandatory = true />#if>
multiple size="${multiple}"#if><#if (tabIndex > 0)> tabindex="${tabIndex}"#if><#if params!=''> ${params}#if><#if title!=''> ${title}#if><#if mandatory> required#if><#if disabled> disabled#if>>
<#if items?has_content>
<#if sort=true>
<#list items?sort_by("name") as item>
<#if default_value="${item.code}">
label="${i18n("portal.util.labelEmpty")}"#if>>${item.name}
<#else>
label="${i18n("portal.util.labelEmpty")}"#if>>${item.name}
#if>
#list>
<#else>
<#if maxLength gt 0>
<#list items as item>
<#if maxLength < item.name?length >
<#assign item_new = "..." + "${item.name?substring(item.name?length-maxLength+3)}" >
<#else>
<#assign item_new = "${item.name}">
#if>
<#if default_value="${item.code}">
${item_new}
<#else>
${item_new}
#if>
#list>
<#else>
<#list items as item>
<#if default_value="${item.code}">
label="${i18n("portal.util.labelEmpty")}"#if>>${item.name}
<#else>
label="${i18n("portal.util.labelEmpty")}"#if>>${item.name}
#if>
#list>
#if>
#if>
<#else>
<#nested>
#if>
#macro>
<#-- ICONS -->
<#-- Icons from FontAwesome 5.8.1 -->
<#macro icon prefix='fa-' style='' class='' title='' id='' params=''>
<#if style='docker' || style = 'github' || style='gitlab' || style='java' || style='jira' || style='jenkins' || style = 'twitter' >
<#local prefix = 'fab ' + prefix />
<#else>
<#local prefix = 'fas ' + prefix />
#if>
<#switch style>
<#case 'arrows'>
<#local iconStyle = 'arrows-alt' />
<#break>
<#case 'arrows-h'>
<#local iconStyle = 'arrows-alt-h' />
<#break>
<#case 'arrows-v'>
<#local iconStyle = 'arrows-alt-v' />
<#break>
<#case 'clock-o'>
<#local iconStyle = 'clock' />
<#break>
<#case 'close'>
<#local iconStyle = 'times' />
<#break>
<#case 'external-link'>
<#local iconStyle = 'external-link-alt' />
<#break>
<#case 'file-pdf-o'>
<#local iconStyle = 'file-pdf' />
<#break>
<#case 'pencil'>
<#local iconStyle = 'edit' />
<#break>
<#case 'refresh'>
<#local iconStyle = 'sync' />
<#break>
<#default>
<#local iconStyle = style />
#switch>
title='${title}'#if><#if id!=''> id="${id}"#if><#if params!=''> ${params}#if>>
#macro>
<#-- ICONSTACK -->
<#-- iconStack -->
<#-- class: par défaut 2x peut être tout autre taille voir doc FontAwesome -->
<#-- nested: 2 macro @icon une class fa-stack-2x , autre avec class fa-stack-1x dans l'ordre -->
<#macro iconStack class='fa-2x' id='' params=''>
${id}#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#-- FORM -->
<#-- type: inline/horizontal/form -->
<#-- enctype: multipart/form-data | text/plain -->
<#macro tform type='horizontal' class='' align='' hide=[] action='' method='post' name='' id='' role='' collapsed=false enctype='' params='' deprecated...>
<@deprecatedWarning args=deprecated />
<#local class = class />
<#if align!=''><#local class += ' ' + alignmentSettings(align,'') />#if>
<#if hide??><#local class += ' ' + displaySettings(hide,'block') />#if>
<#if collapsed><#local class += ' collapse' />#if>
<#switch type>
<#case 'horizontal'>
<#local class += ' form-horizontal'>
<#break>
<#case 'inline'>
<#local class += ' form-inline'>
<#break>
<#default>
<#local class += ' form'>
#switch>
#macro>
<#-- FORM ELEMENT STRUCTURE -->
<#-- formStyle values: empty/inline/horizontal/navbar-form/navbar-left... Default is horizontal -->
<#-- groupStyle: success/warning/error... -->
<#-- showLabel is deprecated in Lutece v7 -->
<#macro formGroup class='' formStyle='horizontal' groupStyle='' rows=1 labelKey='' labelFor='' labelId='' labelClass='' helpKey='' id='' mandatory=false hideLabel=[] collapsed=false params='' deprecated...>
<@deprecatedWarning args=deprecated />
<#local displayLabelClass = displaySettings(hideLabel,'') />
<#if collapsed><#local class += ' collapse' />#if>
#macro>
<#macro formField class=''>
<#nested>
#macro>
<#-- showLabel is deprecated in Lutece v7 -->
<#macro formLabel class='' labelFor='' labelId='' labelKey='' hideLabel=[] mandatory=true deprecated...>
<@deprecatedWarning args=deprecated />
<#local class += ' ' + displaySettings(hideLabel,'') />
id="${labelId}"#if><#if mandatory=true>ariaLabel="${labelKey} [#i18n{portal.users.modify_attribute.labelMandatory}]"#if>>${labelKey}
#macro>
<#macro formHelp style='inline' class='' labelFor=''>
id="${labelFor}_help"#if>>
<#nested>
#macro>
<#-- INPUT TEXT/TEXTAREA/SEARCH/PASSWORD/EMAIL/FILE -->
<#-- type : text/textarea/password/email/file/number. Default is text -->
<#-- size: input-xs/input-sm/input-lg -->
<#-- pattern: [A-F][0-9]{5} -->
<#-- language: for input type DATE and datepickers -->
<#macro input name type='text' value='' class='' size='' inputSize=0 maxlength=0 placeHolder='' rows=4 cols=40 richtext=false tabIndex='' id='' disabled=false readonly=false pattern='' title='' min=0 max=0 params='' mandatory=false language=.lang minDate='' maxDate='' defaultDate='' minTime='' maxTime='' defaultTime=''>
<#if propagateMandatory?? && propagateMandatory ><#local mandatory = true />#if>
<#if type='textarea'>
<#elseif type='text' || type='search' || type='password' || type='email' || type='file' || type='number'>
tabindex="${tabIndex}"#if><#if placeHolder!=''> placeholder="${placeHolder}"#if><#if title!=''> title="${title}"#if><#if maxlength > 0> maxlength="${maxlength}"#if><#if inputSize!=0> size="${inputSize}"#if><#if disabled> disabled#if><#if readonly> readonly#if><#if id!=''> id="${id}"#if><#if params!=''> ${params}#if><#if pattern!=''>pattern=${pattern}#if><#if min!=max> min="${min}"#if><#if max!=0> max="${max}"#if><#if mandatory> required #if><#if labelFor?? && labelFor!='' && helpkey?? && helpKey!=''> aria-describedby="${labelFor}_help"#if> />
<#elseif type='date' || type='datetime' || type='daterange' || type='datetimerange'>
<#if type='date'>
<@getDatePickerBootstrap idField='${id}' language=language />
<#elseif type='datetime'>
<@getDateTimePickerBootstrap idField='${id}' language=language />
<#elseif type='daterange'>
<@getDateRangeFlatPicker idField='${id}' language=language />
<#elseif type='datetimerange'>
<@getDateTimeRangeFlatPicker idField='${id}' language=language />
#if>
<#if id=''><@alert class='danger'>La saisie d'un ID pour le champ est obligatoire@alert>#if>
tabindex="${tabIndex}"#if><#if placeHolder!=''> placeholder="${placeHolder}"#if><#if title!=''> title="${title}"#if><#if maxlength > 0> maxlength="${maxlength}"#if><#if inputSize!=0> size="${inputSize}"#if><#if disabled> disabled#if><#if readonly> readonly#if><#if id!=''> id="${id}"#if><#if params!=''> ${params}#if><#if pattern!=''>pattern=${pattern}#if><#if min!=max> min="${min}"#if><#if max!=0> max="${max}"#if><#if mandatory> required #if><#if labelFor?? && labelFor!='' && helpkey?? && helpKey!=''> aria-describedby="${labelFor}_help"#if> />
<#elseif type='hidden'>
id="${id}"#if> value="${value}" />
<#else><@icon style='warning' />Type not supported
#if>
#macro>
<#-- STATIC TEXT -->
<#-- Bootstrap colors: muted/primary/success/info/warning/danger -->
<#-- AdminLTE colors: red/yellow/aqua/blue/black/light-blue/green/gray/navy/teal/olive/lime/orange/fuchsia/purple/maroon -->
<#macro staticText inForm=true color='' id='' params=''>
id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#-- CHECKBOX -->
<#-- orientation: vertical/inline. Default is vertical -->
<#-- TODO -->
<#macro checkBox name id='' labelKey='' orientation='vertical' value='' tabIndex='' title='' disabled=false readonly=false checked=false params='' mandatory=false deprecated...>
<@deprecatedWarning args=deprecated />
<#if propagateMandatory?? && propagateMandatory ><#local mandatory = true />#if>
<#if id = ''><#local id = name />#if>
<#if orientation='vertical'>#if>
class="checkbox-inline"#if> for="${id}" <#if title!=''> title="${title}"#if>>
value="${value}"#if><#if tabIndex!=''> tabindex="${tabIndex}"#if><#if checked> checked#if><#if disabled> disabled#if><#if readonly> readonly#if><#if params!=''> ${params}#if><#if mandatory> required#if> />
<#if labelKey!=''>${labelKey}<#else><#nested>#if>
<#if orientation='vertical'>
#if>
#macro>
<#-- RADIO BUTTON -->
<#-- orientation: vertical/inline. Default is vertical -->
<#macro radioButton name id='' labelKey='' labelFor='' orientation='vertical' value='' tabIndex='' title='' disabled=false readonly=false checked=false params='' mandatory=false >
<#if propagateMandatory?? && propagateMandatory ><#local mandatory = true />#if>
<#if orientation='vertical'>#if>
class="radio-inline"#if> for="${labelFor}">
value="${value}"#if><#if tabIndex!=''> tabindex="${tabIndex}"#if><#if checked> checked#if><#if disabled> disabled#if><#if readonly> readonly#if><#if mandatory> required#if><#if params!=''> ${params}#if> />
<#if labelKey!=''>${labelKey}<#else><#nested>#if>
<#if orientation='vertical'>
#if>
#macro>
<#-- INPUT-GROUP -->
<#-- size: sm/lg/no size-->
<#macro inputGroup size='' class='' id='' params=''>
id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#macro inputGroupItem pos='' type='btn' id='' params=''>
<#-- type: btn/text. default is btn-->
<#if type = 'text'>
<#local type = 'addon' />
#if>
id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#-- DROPDOWN MENU -->
<#-- class: dropdown-menu-right -->
<#-- Expected content : Your link here -->
<#macro dropdownMenu class='' id='' params=''>
#macro>
<#-- ROW -->
<#macro row class='' id='' collapsed=false align='' params=''>
<#if collapsed><#local class += ' ' + 'collapse' />#if>
<#if align!=''><#local class+= ' ' + alignmentSettings(align) />#if>
id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#-- COLUMNS -->
<#-- cols = col-xs- (<544px)/col-sm- (>=544px)/col-md- (>=768px)/col-lg- (>=992px)/col-xl- (>=1200px) -->
<#-- Push and Pull are deprecated in Bootstrap 4 -->
<#-- offsetXs, offsetSm, offsetMd, offsetLg and offsetXl are deprecated. Use offset={} instead where the values are listed as following: offset={'xs':int, 'sm':int, 'md':int, 'lg':int, 'xl':int} -->
<#-- Order uses flexbox. Use Order for xs/all breakpoints this way: order=int, or for other breakpoints this way: order={'sm':int, 'md':int, 'lg':int, 'xl':int} -->
<#macro columns tag='div' offset={} offsetXs=0 offsetSm=0 offsetMd=0 offsetLg=0 offsetXl=0 order={} pushXs=0 pushSm=0 pushMd=0 pushLg=0 pushXl=0 pullXs=0 pullSm=0 pullMd=0 pullLg=0 pullXl=0 xs=12 sm=0 md=0 lg=0 xl=0 id='' class='' align='' collapsed=false params=''>
<#if align!=''><#local class+= ' ' + alignmentSettings(align,'text') />#if>
<#if collapsed><#local class += ' ' + 'collapse' />#if>
<#if align!=''><#local class+= ' ' + alignmentSettings(align,'text') />#if>
<#local class += ' ' + responsiveDisplay('col',{'xs':xs, 'sm':sm, 'md':md, 'lg':lg, 'xl':xl}) />
<#if offset?has_content>
<#local class += ' ' + responsiveDisplay('offset',offset) />
<#elseif offsetXs > 0 || offsetSm > 0 || offsetMd > 0 || offsetLg > 0 || offsetXl > 0>
<#local class += ' ' + responsiveDisplay('offset',{'xs':offsetXs, 'sm':offsetSm, 'md':offsetMd, 'lg':offsetLg, 'xl':offsetXl}) />
#if>
<#if pushXs > 0 || pushSm > 0 || pushMd > 0 || pushLg > 0 || pushXl > 0>
<#local breakpoints = {'xs':pushXs, 'sm':pushSm, 'md':pushMd, 'lg':pushLg, 'xl':pushXl} />
<#list breakpoints as breakpointkey,breakpointvalue>
<#if breakpointvalue!=0>
<#local class += ' col-${breakpointkey}-push-${breakpointvalue}' />
#if>
#list>
#if>
<#if pullXs > 0 || pullSm > 0 || pullMd > 0 || pullLg > 0 || pullXl > 0>
<#local breakpoints = {'xs':pullXs, 'sm':pullSm, 'md':pullMd, 'lg':pullLg, 'xl':pullXl} />
<#list breakpoints as breakpointkey,breakpointvalue>
<#if breakpointvalue!=0>
<#local class += ' col-${breakpointkey}-pull-${breakpointvalue}' />
#if>
#list>
#if>
<${tag}<#if class?trim!=''> class="${class?trim}"#if><#if id!=''> id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
${tag}>
#macro>
<#-- LISTS -->
<#macro ul id='' class='' align='' hide=[] collapsed=false params=''>
<#if collapsed><#local class += ' ' + 'collapse' />#if>
<#if align!=''><#local class+= ' ' + alignmentSettings(align) />#if>
<#if hide??><#local class += ' ' + displaySettings(hide,'block') />#if>
class="${class?trim}"#if><#if params!=''> ${params}#if><#if id!=''> ${id}#if>>
<#nested>
#macro>
<#macro li id='' params='' class=''>
class="${class}"#if><#if params!=''> ${params}#if><#if id!=''> ${id}#if>>
<#nested>
#macro>
<#-- DIV -->
<#macro div id='' class='' hide=[] collapsed=false align='' params=''>
<#if collapsed><#local class += ' ' + 'collapse' />#if>
<#if align!=''>
<#local class += ' ' + alignmentSettings(align,'text') />
#if>
<#if hide??><#local class += ' ' + displaySettings(hide,'block') />#if>
class="${class?trim}"#if><#if id!=''> id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
<#if align!=''>
#if>
#macro>
<#-- PARAGRAPH -->
<#macro p id='' class='' hide=[] collapsed=false align='' params=''>
<#if collapsed><#local class += ' ' + 'collapse' />#if>
<#local class += ' ' + alignmentSettings(align,'text') + ' ' + displaySettings(hide,'block') />
class="${class?trim}"#if><#if params!=''> ${params}#if><#if id!=''> ${id}#if>>
<#nested>
#macro>
<#-- SPAN -->
<#macro span id='' class='' hide=[] collapsed=false align='' params=''>
<#if collapsed><#local class += ' ' + 'collapse' />#if>
<#local class += ' ' + alignmentSettings(align,'text') + ' ' + displaySettings(hide,'inline-flex') />
class="${class?trim}"#if><#if params!=''> ${params}#if><#if id!=''> ${id}#if>>
<#nested>
#macro>
<#-- PRE -->
<#macro pre id='' class='' hide=[] collapsed=false align='' params=''>
<#local class += ' ' + alignmentSettings(align,'text') + ' ' + displaySettings(hide,'block') />
class="${class?trim}"#if><#if params!=''> ${params}#if><#if id!=''> ${id}#if>>
<#nested>
#macro>
<#-- TABS -->
<#-- Tab Container -->
<#-- TAB Custom AdminLTE -->
<#-- style: tabs/tabs nav-justified/pills/pills nav-stacked/pills nav-justified -->
<#macro tabs color='' style='tabs' class='' id='' hide=[] collapsed=false params=''>
<#if collapsed><#local class += ' ' + 'collapse' />#if>
<#if hide??><#local class += ' ' + displaySettings(hide,'block') />#if>
<#assign propagateTabStyle = style />
id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#-- Bootstrap UL tabs -->
<#-- type is deprecated -->
<#macro tabList style='tabs' vertical=false id='' params='' color=''>
<#if propagateTabStyle??><#local style = propagateTabStyle />#if>
id="${id}"#if><#if params!=''> ${params}#if><#if vertical> style="margin-bottom:2rem;"#if>>
<#nested>
#macro>
<#-- Tabs -->
<#-- type: -->
<#macro tabLink class='' hide=[] id='' active=false href='' title='' tabIcon='' params=''>
<#local tabLinkClass = class />
<#if active><#local tabLinkClass += ' active' />#if>
id="${id}"#if><#if params!=''> ${params}#if>>
<#local tabLinkSettings = 'role="tab" aria-expanded="false"' />
<#if href?contains('#') && href?contains('.jsp') == false>
<#local tabLinkSettings += 'data-toggle="tab"' />
#if>
<@link href=href title=title params=tabLinkSettings>
<#if tabIcon!=''><@icon style=tabIcon />#if> ${title}
<#nested>
@link>
#macro>
<#-- TAB Content AdminLTE -->
<#macro tabContent id='' params=''>
id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#-- Tab Panel BS3 -->
<#macro tabPanel id params='' active=false>
${params}#if>>
<#nested>
#macro>
<#-- ACCORDION -->
<#-- The accordionContainer is the container for accordionPanel, which itself is the container for accordionHeader and accordionBody -->
<#-- The childId argument in accordionPanel is meant to be used in the two sub-macros: accordionHeader and accordionBody -->
<#macro accordionContainer id='' params=''>
<#if id = '' >
<#if accordionContainerId?? == false><#assign accordionContainerId = 1 ><#else><#assign accordionContainerId = accordionContainerId + 1 >#if>
<#local id = 'accCont_'+ accordionContainerId >
#if>
${params}#if>>
<#assign parentId = id>
<#nested>
#macro>
<#macro accordionPanel color='' collapsed=true childId='' id='' params=''>
id="${id}"#if><#if params!=''> ${params}#if>>
<#if collapsed = true>
<#assign aClass = 'collapsed'>
<#assign expanded = 'false'>
<#assign childClass = 'panel-collapse collapse'>
<#else>
<#assign aClass = ''>
<#assign expanded = 'true'>
<#assign childClass = 'panel-collapse collapse in'>
#if>
<#assign childId = childId>
<#nested>
#macro>
<#-- ACCORDION ELEMENT -->
<#-- The boxTools parameter is unused, kept for backwards compatibility -->
<#macro accordionHeader title='' parentId=parentId childId=childId boxTools=false id='' params='' headerIcon='' >
#macro>
<#macro accordionBody id=childId class=childClass expanded=expanded params=''>
${params}#if>>
<@boxBody>
<#nested>
@boxBody>
#macro>
<#macro progressBar description='' id='' params=''>
id="${id}"#if><#if params!=''> ${params}#if>>
<#if description!=''>
${description}
#if>
#macro>
<#macro progress color='primary' id='' params='' value=0 min=0 max=100 text='' >
id="${id}"#if><#if params!=''> ${params}#if>>
<#if text=''>${value}%<#else>${text}#if>
#macro>
<#-- INFO-BOX AdminTLE (widget) -->
<#-- color: only for the left side showing the icon. -->
<#-- bgColor: for the right side containing the text -->
<#macro infoBox color='' boxText='' boxIcon='' boxNumber='' unit='' bgColor='' progressBar='' progressDescription='' id='' params=''>
id="${id}"#if><#if params!=''> ${params}#if>>
<@icon style=boxIcon />
${boxText}
${boxNumber?string(",000")}<#if unit!=''> ${unit} #if>
<#if bgColor!='' && progressBar!=''>
#if>
<#if progressDescription!=''>
${progressDescription}
#if>
#macro>
<#-- TAG -->
<#-- color: default/primary/success/info/warning/danger/ -->
<#macro tag color='default' class='' size='' title='' tagIcon='' id='' params='' deprecated...>
<@deprecatedWarning args=deprecated />
title='${title}'#if><#if id!=''>id='${id}'#if><#if params!=''>${params}#if>>
<#if tagIcon !=''>
<@icon style=tagIcon />
#if>
<#nested>
#macro>
<#-- BUTTON -->
<#-- bootstrap 3 : size: btn-xs/btn-sm/btn-lg -->
<#-- upcoming bootstrap 4 : size: btn-sm for small buttons/empty for medium buttons/btn-lg for large buttons -->
<#-- color: default[bootstrap4 : secondary]/primary/success/warning/danger/info -->
<#-- color (upcoming bootstrap 4): btn-outline-default/btn-outline-primary/btn-outline-success/btn-outline-warning/btn-outline-danger/btn-outline-info/ -->
<#-- style: btn-block/btn-flat/close/navbar-toggle/collapsed... -->
<#-- type: button/submit/reset -->
<#-- params: data-toggle/data-target/data-dismiss... -->
<#-- buttonIcon: icon name ex: info/check/comment/envelope... -->
<#-- iconPosition: left/right -->
<#-- cancel: switch to true for a cancellation form button. Adds the "formnovalidate" attribute to the button, as well as the right class -->
<#-- formId: contains the form ID if the button is outside of the form -->
<#-- buttonTargetId: contains the target element ID -->
<#-- showTitle, showTitleXs, showTitleSm, showTitleMd, showTitleLg are deprecated in Lutece v7 -->
<#macro button name='' id='' type='button' size='' color='' style='btn-flat' class='' params='' value='' title='' tabIndex='' hideTitle=[] showTitle=true showTitleXs=true showTitleSm=true showTitleMd=true showTitleLg=true buttonIcon='' disabled=false iconPosition='left' dropdownMenu=false cancel=false formId='' buttonTargetId='' deprecated...>
<@deprecatedWarning args=deprecated />
<#if cancel || color = 'default' || color='btn-default' || color='btn-secondary' || color='secondary'>
<#local buttonColor = 'default' />
<#elseif !cancel && color=''>
<#local buttonColor = 'primary' />
<#else>
<#local buttonColor = color />
#if>
<#-- Visibility of button title -->
<#local displayTitleClass = displaySettings(hideTitle,'inline-flex') />
<#-- Visibility of button title: backwards compatibility with Lutece v6, BS3 only -->
<#local showTitleClass = '' />
<#if showTitle = false><#local showTitleClass = 'sr-only' />#if>
<#if showTitleXs = false><#local showTitleClass = showTitleClass + ' hidden-xs' />#if>
<#if showTitleSm = false><#local showTitleClass = showTitleClass + ' hidden-sm' />#if>
<#if showTitleMd = false><#local showTitleClass = showTitleClass + ' hidden-md' />#if>
<#if showTitleLg = false><#local showTitleClass = showTitleClass + ' hidden-lg' />#if>
<#if style != ''>
<#if style?contains('card-control')>
<#if style?contains('collapse')>
<#local widgetAction = 'collapse' />
<#elseif style?contains('remove')>
<#local widgetAction = 'remove' />
#if>
<#local btnStyle = 'btn-flat ' + style?replace('collapse|remove', '', 'r')?trim />
<#elseif style?contains('modal')>
<#local widgetAction = 'modal' />
<#local btnStyle = 'btn-flat ' + style?replace('modal', '', 'r')?trim />
<#else>
<#local btnStyle = 'btn-flat ' + style />
#if>
#if>
<#if dropdownMenu>
#if>
#macro>
<#-- A BUTTON (LINK STYLED AS A BUTTON) -->
<#-- size: btn-xs/btn-sm/btn-lg -->
<#-- color: default/primary/success/warning/danger/info/ -->
<#-- style: btn-block/btn-flat/disabled/btn-app -->
<#-- icon: icon name ex: info/check/comment/envelope... -->
<#-- showTitle, showTitleXs, showTitleSm, showTitleMd, showTitleLg are deprecated in Lutece v7 -->
<#macro aButton name='' id='' href='' target='' size='' color='primary' style='btn-flat' align='' class='' params='' title='' tabIndex='' hideTitle=[] buttonIcon='' disabled=false iconPosition='left' dropdownMenu=false deprecated...>
<@deprecatedWarning args=deprecated />
<#-- Bootstrap 4 transition -->
<#if color='secondary'>
<#local color_temp='default'>
<#else>
<#local color_temp=color>
#if>
<#-- Visibility of button title -->
<#local displayTitleClass = displaySettings(hideTitle,'inline-flex') />
<#local class += ' ' + alignmentSettings(align,'') />
name="${name}"#if><#if id!=''> id="${id}"#if> href="${href}" title="${title}"<#if target!=''> target="${target}"#if><#if params!=''> ${params}#if><#if disabled> disabled#if><#if dropdownMenu> data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"#if>>
<#if buttonIcon!='' && iconPosition='left'><@icon style=buttonIcon />#if>
${title}
<#if buttonIcon!='' && iconPosition='right'><@icon style=buttonIcon />#if>
<#if dropdownMenu>
<@icon style='caret-down' />
#if>
<#if !dropdownMenu>
<#nested>
#if>
<#if dropdownMenu>
#if>
#macro>
<#-- BTN TOOLBAR -->
<#macro btnToolbar id='' class='' align='' ariaLabel='' params=''>
<#if align!=''><#local class += ' ' + alignmentSettings(align) />#if>
aria-label="${ariaLabel}"#if><#if id!=''> id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#-- BTN GROUP -->
<#-- size: sm/empty/lg -->
<#-- align: left/center/right -->
<#macro btnGroup align='' size='' class='' id='' params='' ariaLabel='' hide=[] deprecated...>
<@deprecatedWarning args=deprecated />
<#local class += ' ' + displaySettings(hide,'') + ' ' + alignmentSettings(align,'') />
aria-label="${ariaLabel}"#if><#if id!=''> id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#-- Radio button/Checkbox as buttons (to use with btnGroup) -->
<#-- type: radio/checkbox -->
<#macro btnGroupRadioCheckbox type='checkbox' color='primary' size='' name='' id='' params='' ariaLabel='' labelFor='' labelKey='' labelParams='' tabIndex='' value='' checked=false>
${labelParams}#if>>
value="${value}"#if><#if params!=''> ${params}#if><#if tabIndex!=''> tabindex="${tabIndex}"#if><#if checked> checked#if> /><#if labelKey!=''>${labelKey}#if>
#macro>
<#-- Simple links a href, anchors -->
<#macro link href='' class='' id='' name='' title='' alt='' target='' params=''>
class="${class}"#if><#if id!=''> id="${id}"#if><#if name!=''> name="${name}"#if><#if target!=''> target="${target}"#if><#if title!=''> title="${title}"#if><#if alt!=''> alt="${alt}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#-- MODAL -->
<#-- bgColor: modal-default/modal-primary/modal-info/modal-warning/modal-danger -->
<#macro modal id params='' bgColor='' size=''>
#macro>
<#macro modalHeader titleLevel='h4' modalTitle='' id='' params=''>
#macro>
<#macro modalBody id='' params=''>
id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#macro modalFooter id='' params=''>
#macro>
<#-- BREADCRUMBS -->
<#macro breadcrumbs id='' params=''>
id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#macro breadcrumbItem class='' id='' params=''>
class="${class}"#if><#if id!=''> id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#-- CALLOUT -->
<#-- AdminLTE classes: info/warning/danger/success -->
<#macro callOut color='' titleLevel='h3' title='' callOutIcon='' id='' params=''>
id="${id}"#if><#if params!=''> ${params}#if>>
<#if title!=''><${titleLevel}><@icon style=callOutIcon /> ${title}${titleLevel}>#if>
<#nested>
#macro>
<#-- ALERT -->
<#-- classes: alert-success/alert-info/alert-warning/alert-danger + alert-dismissible -->
<#-- color: primary/success/info/warning/dange r-->
<#macro alert class='' color='' titleLevel='h3' title='' iconTitle='' dismissible=false id='' params=''>
id="${id}"#if><#if params!=''> ${params}#if>>
<#if dismissible>
<@button color='' size='' style='close' params='data-dismiss="alert" aria-hidden="true"'>
×
@button>
#if>
<#if title!=''>
<${titleLevel}>
<#if iconTitle!=''><@icon style=iconTitle />#if>
${title}
${titleLevel}>
#if>
<#nested>
#macro>
<#---------------------------------------->
<#-- AdminLTE Box -->
<#-- color: default/primary/info/success/warning/danger -->
<#-- style: solid (no top border) -->
<#-- collapsed: true/false -->
<#macro box color='' id='' style='' class='' params='' collapsed=false>
id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#-- The boxTools parameter is unused, kept for backwards compatibility -->
<#macro boxHeader title='' i18nTitleKey='' hideTitle=[] showTitle=true id='' params='' boxTools=false titleLevel='h2'>
#macro>
<#macro boxBody class='' collapsed=false align='' id='' params=''>
<#if collapsed><#local class += ' ' + 'collapse' />#if>
<#if align!=''><#local class += ' ' + alignmentSettings(align,'text') />#if>
id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#macro boxFooter class='' align='' id='' params=''>
<#if align!=''><#local class += ' ' + alignmentSettings(align,'text') />#if>
#macro>
<#---------------------------------------->
<#-- AdminLTE Small Box -->
<#-- color: Bootstrap + AdminLTE colors -->
<#-- unit: %,... -->
<#macro smallBox color='' title='' text='' boxIcon='' titleLevel='h3' unit='' url='' urlText='' id='' params='' fontSize='40px'>
id="${id}"#if><#if params!=''> ${params}#if>>
${text}
<${titleLevel} style="font-size:${fontSize};">${title}<#if unit!=''> ${unit}#if>${titleLevel}>
<@icon style=boxIcon />
<#if url!=''>
#if>
#macro>
<#-- AdminLTE Error Page -->
<#-- Error Type: 500,404... -->
<#-- Color: primary/blue/navy/aqua/teal/green/orange/yellow/red/purple/maroon/gray/black... -->
<#macro errorPage color='' errorType='' id='' params=''>
id="${id}"#if><#if params!=''> ${params}#if>>
${errorType}
<@icon style='warning' class='text-${color}' />
<#if errorType=='404'>
#i18n{portal.util.error404.title}
<#elseif errorType='500'>
#i18n{portal.util.error500.title}
<#else>...
#if>
<#if errorType=='404'>
#i18n{portal.util.error404.text}
<#elseif errorType='500'>
#i18n{portal.util.error500.text}
<#else>...
#if>
<@aButton href='' size='' color='bg-${color}' style='btn-flat'>
<@icon style='home' />
#i18n{portal.util.labelBackHome}
@aButton>
#macro>
<#-- CONTEXTUAL BACKGROUND P-->
<#-- Bootstrap colors: primary/success/info/warning/danger -->
<#-- AdminTLE colors: gray/gray-light/black/red/yellow/aqua/blue/light-blue/green/navy/teal/olive/lime/orange/fuchsia/purple/maroon -->
<#macro coloredBg color='' type='p' id='' params=''>
<${type} class="bg-${color}"<#if id!=''> id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
${type}>
#macro>
<#macro listGroup id='' params=''>
id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#macro listGroupItem id='' params=''>
id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
#macro>
<#macro unstyledList id='' params=''>
id="${id}"#if><#if params!=''> ${params}#if>>
<#assign liClass = "margin">
<#nested>
#macro>
<#-- DROPDOWN MENU LIST -->
<#macro dropdownList id='' params=''>
#macro>
<#macro dropdownItem class='' href='' title='' id='' params=''>
id="${id}"#if><#if params!=''> ${params}#if>>${title}
#macro>
<#-- NAVBAR -->
<#macro navBar tag='nav' class='' id='' params=''>
<${tag} class="navbar<#if class!=''> ${class}#if>"<#if id!=''> id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
${tag}>
#macro>
<#-- NAV -->
<#macro nav tag='nav' type='tab' class='' id='' params=''>
<${tag} class="nav nav-${type!}<#if class!=''> ${class}#if>"<#if id!=''> id="${id}"#if><#if params!=''> ${params}#if>>
<#nested>
${tag}>
#macro>
<#-- NAVITEM -->
<#macro navItem href='' name='' active=false title='' alt='' target='' tag='li' class='' id='' params=''>
<${tag} class="nav-link<#if class!=''> ${class}#if>"<#if id!=''> id="${id}"#if><#if params!=''> ${params}#if>>
<#if href !='' >
<@link class='nav-link' href=href name=name title=title alt=alt target=target active=active />
#if>
<#nested>
#${tag}>
#macro>
<#-- CARDS -->
<#macro card header=false headerTitle='' headerIcon=false headerTitleIcon=''>
<#if header>
<#if headerIcon><@icon style='${headerTitleIcon}' /> #if>${headerTitle}
#if>
<#nested>
#macro>
<#-- FUNCTION: DISPLAY -->
<#-- This function returns a "visible" or "hidden" class for any component -->
<#-- breakpoints: "all" || "xs"/"sm"/"md"/"lg" -->
<#-- display: unused -->
<#function displaySettings breakPoints=[] display=''>
<#local breakPointsOrdered = [] />
<#if breakPoints?seq_contains("all")>
<#local breakPointsOrdered += ["all"] />
#if>
<#if breakPoints?seq_contains("xs")>
<#local breakPointsOrdered += ["xs"] />
#if>
<#if breakPoints?seq_contains("sm")>
<#local breakPointsOrdered += ["sm"] />
#if>
<#if breakPoints?seq_contains("md")>
<#local breakPointsOrdered += ["md"] />
#if>
<#if breakPoints?seq_contains("lg")>
<#local breakPointsOrdered += ["lg"] />
#if>
<#local displayClass = '' />
<#if breakPointsOrdered?? && breakPointsOrdered?size > 0>
<#list breakPointsOrdered as breakPoint>
<#if breakPoint = "all">
<#local displayClass = 'hidden' />
<#elseif breakPoint = "xs">
<#local displayClass = displayClass + ' hidden-xs' />
<#elseif breakPoint = 'sm'>
<#local displayClass = displayClass + ' hidden-sm' />
<#elseif breakPoint = 'md'>
<#local displayClass = displayClass + ' hidden-md' />
<#elseif breakPoint = 'lg'>
<#local displayClass = displayClass + ' hidden-lg' />
<#else>
<#local displayClass = displayClass + ' undefined_breakpoint' />
#if>
#list>
#if>
<#return displayClass?trim>
#function>
<#-- This function returns responsive classes -->
<#-- type: col|offset -->
<#function responsiveDisplay type='' breakpoints={}>
<#local responsiveDisplayClass = '' />
<#list breakpoints as breakpointkey,breakpointvalue>
<#if breakpointvalue!=0>
<#if type = 'col'>
<#local responsiveDisplayClass += ' ${type}-${breakpointkey}-${breakpointvalue}' />
<#elseif type = 'offset'>
<#local responsiveDisplayClass += ' col-${breakpointkey}-${type}-${breakpointvalue}' />
#if>
#if>
#list>
<#return responsiveDisplayClass?trim>
#function>
<#function alignmentSettings align='' style=''>
<#local x = ''>
<#if align !=''>
<#if align = 'left'>
<#local x = 'pull-left' />
<#elseif align = 'right'>
<#if style = 'text'>
<#local x = 'text-right' />
<#elseif style = '' />
<#local x = 'pull-right' />
#if>
<#elseif align = 'center'>
<#local x = 'text-center' />
<#else>
#if>
#if>
<#return x>
#function>
<#-- NEW MACRO LUTECE-2221 -->
<#-- MACRO adminHeader -->
<#macro adminHeader site_name=site_name>
#macro>
<#-- MACRO adminFooter -->
<#macro adminFooter >
<@coreAdminJSLinks />
${javascript_files}
#macro>
<#-- MACRO adminHome -->
<#macro adminHome >
<@row>
<@columns class='widget'>
@columns>
@row>
#macro>
<#-- adminContentHeader -->
<#macro adminContentHeader >
#macro>
<#-- adminLoginPage -->
<#macro adminLoginPage title='' site_name='SITE_NAME'>
<#nested>
<@aButton href='http://fr.lutece.paris.fr' params='target="_blank"' title='#i18n{portal.site.portal_footer.labelPortal}' hideTitle=['all'] color='secondary'>
@aButton>
#macro>
<#-- adminHeaderDocumentationLink -->
<#macro adminHeaderDocumentationLink >
<#if feature_documentation?has_content >
<#if feature_documentation?exists>
#i18n{portal.features.documentation.help}
#if>
#if>
#macro>
<#macro adminSiteColumnOutline columnid=''>
${i18n("portal.site.columnId",columnid)}
<#nested>
#macro>
<#-- adminMessagePage -->
<#macro adminMessagePage title=''>
<#local alerttype="yellow" />
<#local icontype="fa-info-circle" />
<#if message.type == 2 >
<#local alerttype="red" />
<#local icontype="fa-question-circle" />
<#elseif message.type == 3 >
<#local alerttype="yellow" />
<#local icontype="fa-exclamation-circle" />
<#elseif message.type == 4 >
<#local alerttype="yellow" />
<#local icontype="fa-question-circle" />
<#elseif message.type == 5 >
<#local alerttype="red" />
<#local icontype="fa-ban" />
#if>
#macro>
<#-- fieldSet -->
<#macro fieldSet class='' fieldsetId='' fieldsetParams='' legend='' legendClass='' legendId='' legendIcon='' legendParams='' hideLegend=[] disabled=false>
class="${class}"#if><#if fieldsetId!=''> id="${fieldsetId}"#if><#if fieldsetParams!=''> ${fieldsetParams}#if><#if disabled> disabled#if>>
<#if legend!=''>
<#local legendClass += ' ' + displaySettings(hideLegend,'block') />
class="${legendClass?trim}"#if><#if legendId!=''> id="${legendId}"#if><#if legendParams!=''> ${legendParams}#if>><#if legendIcon!=''><@icon style=legendIcon /> #if>${legend}
#if>
<#nested>
#macro>
<#-- RESPONSIVE -->
<#-- HTML ELEMENTS -->
<#macro img url='' alt='' title='' class='' id='' params=''>
id="${id}"#if><#if params!=''> ${params}#if> />
#macro>
<#-- Email Default Template -->
<#macro emailTemplate title='Lutece' footer_link='https://fr.lutece.paris.fr'>
#macro>
<#macro adminLanguage languages lang action='jsp/admin/DoChangeLanguage.jsp' >
#i18n{portal.admin.admin_home.language}
<@tform method='post' action=action class='form-inline'>
<#list languages as language>
<#if lang==language.code>
<#local languageButtonColor='success'>
<#else>
<#local languageButtonColor='default'>
#if>
<@button color='${languageButtonColor}' type='submit' name='language' value='${language.code}' title='${language.name}'/>
#list>
@tform>
#macro>
<#macro adminAccessibilityMode>
<@tform method='post' action='jsp/admin/DoModifyAccessibilityMode.jsp' class='form-inline'>
<#if user.accessibilityMode>
<@button color='link' size='md' type='submit' buttonIcon='eye' title='#i18n{portal.users.admin_header.labelDeactivateAccessibilityMode}'/>
<#else>
<@button color='link' size='md' type='submit' buttonIcon='eye-slash' title='#i18n{portal.users.admin_header.labelActivateAccessibilityMode}'/>
#if>
@tform>
#macro>
<#-- scroll to top button -->
<#macro scrollTopBtn>
#macro>
<#-- copyElementToClipboard a set of elements designed by a selector - param "selector" -->
<#-- Params -->
<#-- selector : Any CSS selector expression -->
<#-- class : Default '' : List of class with double quote with comma separator -->
<#-- Possible values : "no-hover" No icon on hover - .no-hover portal_admin.css -->
<#-- Possible values : "copy-icon" Icon always shown - . see portal_admin.css -->
<#-- Possible values : "copy-btn" Icon and Button styles - -->
<#-- Ex for multiple classes : "class1","class2" -->
<#-- showMsg : Default false : If true a message is show after copy -->
<#-- msgDone : Default "Copied" : Success message -->
<#-- msgError : Default "Error : not copied" : Error message -->
<#-- Usage -->
<#-- Basic : <@copyElementToClipboard selector='.copy-content' /> -->
<#-- No message : <@copyElementToClipboard selector='.copy-content' showMsg=false /> -->
<#-- No Hover : <@copyElementToClipboard selector='.copy-content' class='"no-hover"' /> -->
<#-- With icon shown : <@copyElementToClipboard selector='.copy-content' class='"copy-icon"' /> -->
<#macro copyElementToClipboard selector class='' showMsg=true msgDone='#i18n{portal.util.copy.done}' msgError='#i18n{portal.util.copy.error}'>
#macro>
<#-- initToast -->
<#-- Params -->
<#-- layout='popups' -->
<#-- position='top-right' -->
<#-- closer=false -->
<#-- sticky=false -->
<#-- progressbar=true -->
<#-- theme='default' -->
<#-- duration=3000 -->
<#-- pool=5 -->
<#macro initToast layout='popups' position='top-right' closer=true sticky=false progressbar=true insert='before' theme='default' duration=3000 pool=5 >
#macro>
<#-- addToast -->
<#-- Params -->
<#-- title : Default "Error : not copied" : Error message -->
<#-- msg : Default "Copied" : Success message -->
<#-- type : Default "default" ['info', 'danger', 'success' 'warning'] -->
<#macro addToast title content type='default' >
lutecepolipop.add({
content: '${content}',
title: '${title}',
type: '${type}',
});
#macro>
<#-- Display wrong or deprecated macro arguments -->
<#macro deprecatedWarning args=[] >
<#if args?size != 0 >#if>
#macro>