Files

84 lines
4.4 KiB
HTML

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
<!--
Composant réutilisable: Barre de Recherche Utilisateur (WOU/DRY Pattern)
Auteur: Lions User Manager
Version: 1.0.0
Description: Barre de recherche avancée pour utilisateurs
Paramètres:
- searchCriteria: UserSearchCriteriaDTO (requis) - Critères de recherche
- searchAction: String (requis) - Action à exécuter lors de la recherche
- update: String (défaut: "@form") - Composants à mettre à jour
- showAdvanced: Boolean (défaut: false) - Afficher les options avancées
- showRealmFilter: Boolean (défaut: true) - Afficher le filtre realm
- showStatusFilter: Boolean (défaut: true) - Afficher le filtre statut
- showRoleFilter: Boolean (défaut: true) - Afficher le filtre rôle
- formId: String (défaut: "searchForm") - ID du formulaire
- useParentForm: Boolean (défaut: false) - Si true, n'crée pas de formulaire (utilise le formulaire parent)
Exemples d'utilisation:
1. Recherche simple:
<ui:include src="/templates/components/user-management/user-search-bar.xhtml">
<ui:param name="searchCriteria" value="#{userBean.searchCriteria}" />
<ui:param name="searchAction" value="#{userBean.search}" />
<ui:param name="update" value="userTable" />
</ui:include>
2. Recherche avec formulaire parent:
<h:form id="formUsers">
<ui:include src="/templates/components/user-management/user-search-bar.xhtml">
<ui:param name="searchCriteria" value="#{userBean.searchCriteria}" />
<ui:param name="searchAction" value="#{userBean.search}" />
<ui:param name="update" value="userTable" />
<ui:param name="useParentForm" value="true" />
</ui:include>
</h:form>
-->
<c:set var="formId" value="#{empty formId ? 'searchForm' : formId}" />
<c:set var="update" value="#{empty update ? '@form' : update}" />
<c:set var="showAdvanced" value="#{empty showAdvanced ? false : showAdvanced}" />
<c:set var="showRealmFilter" value="#{empty showRealmFilter ? true : showRealmFilter}" />
<c:set var="showStatusFilter" value="#{empty showStatusFilter ? true : showStatusFilter}" />
<c:set var="showRoleFilter" value="#{empty showRoleFilter ? true : showRoleFilter}" />
<c:set var="useParentForm" value="#{empty useParentForm ? false : useParentForm}" />
<c:choose>
<c:when test="#{useParentForm}">
<!-- Utiliser le formulaire parent - pas de formulaire ici -->
<ui:include src="/templates/components/user-management/user-search-bar-content.xhtml">
<ui:param name="searchCriteria" value="#{searchCriteria}" />
<ui:param name="searchAction" value="#{searchAction}" />
<ui:param name="update" value="#{update}" />
<ui:param name="showAdvanced" value="#{showAdvanced}" />
<ui:param name="showRealmFilter" value="#{showRealmFilter}" />
<ui:param name="showStatusFilter" value="#{showStatusFilter}" />
<ui:param name="showRoleFilter" value="#{showRoleFilter}" />
</ui:include>
</c:when>
<c:otherwise>
<!-- Créer son propre formulaire -->
<h:form id="#{formId}">
<ui:include src="/templates/components/user-management/user-search-bar-content.xhtml">
<ui:param name="searchCriteria" value="#{searchCriteria}" />
<ui:param name="searchAction" value="#{searchAction}" />
<ui:param name="update" value="#{update}" />
<ui:param name="showAdvanced" value="#{showAdvanced}" />
<ui:param name="showRealmFilter" value="#{showRealmFilter}" />
<ui:param name="showStatusFilter" value="#{showStatusFilter}" />
<ui:param name="showRoleFilter" value="#{showRoleFilter}" />
</ui:include>
</h:form>
</c:otherwise>
</c:choose>
</ui:composition>