adminLanguage.ftl

 1   <#-- Macro: adminLanguage
 2   Description: Generates a language selection form for use in an admin panel. It generates a Bootstrap form that allows the user to select a language from a list of supported languages.
 3   Parameters:
 4   - languages (object): an object that contains information about the supported languages. It should be an array of objects, where each object represents a language and contains a `code` and a `name` property.
 5   - lang (string): the code of the currently selected language.
 6   - action (string, optional): the URL of the form submission handler.
 7   -->
 8   <#macro adminLanguage languages lang action='jsp/admin/DoChangeLanguage.jsp' >
 9   <@tform method='post' action=action class='form-inline clearfix'>
 10   	<@input type='hidden' name='token' value='${token}' />
 11   	<@row>
 12   		<@columns id='lutece-language-menu'>
 13   			<#list languages?filter( language -> language.code == lang  ) as language>
 14   				<@div id="lutece-default-language" class=" ps-1">
 15   					<@icon style='language' /> #i18n{portal.admin.admin_home.language}
 16   					<@span class='ms-2 py-1 ps-4 pe-2 px-2 fw-bolder border border-2 border-muted rounded-pill' params='tabindex="0" style="background: transparent url( ./themes/admin/shared/css/vendor/tabler/img/flags/${lang}.svg ) no-repeat .65rem center; background-size: .75rem" data-lang="${lang}" data-lang-name="${language.name?capitalize}"'>
 17   						${language.name!?capitalize}
 18   					</@span>
 19   				</@div>
 20   			</#list>
 21   			<@div id='lutece-languages'>
 22   			<#list languages?filter( language -> language.code != lang  ) as language>
 23   				<@button color='secondary btn-language' type='submit' name='language' value='${language.code}' title='${language.name?capitalize}' hideTitle=['all'] params='style="background-image: url( ./themes/admin/shared/css/vendor/tabler/img/flags/${language.code}.svg );" data-lang="${language.code}" data-lang-name="${language.name?capitalize}"' />
 24   			</#list>
 25   			</@div>
 26   		</@columns>
 27   		<@columns id='lutece-sidebar-language-menu'>
 28   			<li class="nav-item dropdown">
 29   				<#list languages?filter( language -> language.code == lang ) as language>
 30   				<a id="btn-lang" class="btn btn-muted btn-rounded" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false" title="#i18n{portal.admin.admin_home.language}" data-lang="${language.code}" data-lang-name="${language.name?capitalize}">
 31   					<div class="position-absolute" style="background:url('themes/admin/shared/css/vendor/tabler/img/flags/${lang}.svg');background-size:contain;background-position: center;height:25px;width:25px;border-radius:25px"></div>
 32   				</a>
 33   				</#list>
 34   				<ul class="dropdown-menu p-2 text-center dropdown-menu-center">
 35   					<#list languages?filter( language -> language.code != lang ) as language>
 36   						<a href='${action}?token=${token}&language=${language.code}' class='border btn btn-light btn-rounded mx-auto mt-2' style="background:url('themes/admin/shared/css/vendor/tabler/img/flags/${language.code}.svg');background-size:contain;background-position: center;background-repeat: no-repeat;" data-lang="${language.code}" data-lang-name="${language.name?capitalize}">
 37   							<span class="visually-hidden">#i18n{portal.admin.admin_home.button.changeLanguage} ${language.name}</span>
 38   						</a>
 39   					</#list>
 40   				</ul>
 41   			</li>
 42   		</@columns>
 43   	</@row>
 44   </@tform>
 45   </#macro>
 46   <#-- Macro: adminReadMode
 47   Description: Show read direction button
 48   Parameters:
 49   -->
 50   <#macro adminReadMode>
 51   <li class="nav-item dropdown me-2" id="lutece-rtl">
 52   	<div class="nav-link d-none d-lg-flex" tabindex="0" role="button" title="#i18n{portal.site.site_property.layout.readmode.checkbox}">
 53   		<i class="ti ti-text-direction-rtl"></i> <span class="visually-hidden">#i18n{portal.site.site_property.layout.readmode.checkbox}</span>
 54   	</div>
 55   	<div class="nav-link d-flex d-lg-none" tabindex="0" role="button" title="#i18n{portal.site.site_property.layout.readmode.checkbox}">
 56   		<i class="ti ti-text-direction-rtl  me-2"></i> #i18n{portal.site.site_property.layout.readmode.checkbox}
 57   	</div>
 58   </li>
 59   </#macro>