feat(client): Creation Composite Component action-button-edit-nav pour navigation modification

- Nouveau Composite Component action-button-edit-nav.xhtml
- Attributs: itemId, editPage, styleClass, iconOnly
- Support mode icone seule ou avec texte Modifier
- Navigation vers page de modification (pas de popup)

Application dans liste.xhtml des membres:
uf:action-button-edit-nav itemId membre.id editPage /pages/secure/membre/modifier.xhtml iconOnly true

100% Composite Components pour tous les boutons d'action (DRY/WOU)!
This commit is contained in:
dahoud
2025-11-29 22:47:14 +00:00
parent a1f05441b0
commit d3f9cf10d3
2 changed files with 26 additions and 4 deletions

View File

@@ -195,10 +195,10 @@
<uf:action-button-view itemId="#{membre.id}"
detailPage="/pages/secure/membre/profil.xhtml"
iconOnly="true"/>
<p:commandButton icon="pi pi-pencil"
title="Modifier"
styleClass="ui-button-rounded ui-button-warning"
onclick="window.location='#{request.contextPath}/pages/secure/membre/modifier.xhtml?id=#{membre.id}';return false;"/>
<!-- DRY/WOU: Composite Component action-button-edit-nav -->
<uf:action-button-edit-nav itemId="#{membre.id}"
editPage="/pages/secure/membre/modifier.xhtml"
iconOnly="true"/>
<ui:include src="/templates/components/buttons/button-icon.xhtml">
<ui:param name="icon" value="pi pi-dollar" />
<ui:param name="action" value="#{membreListeBean.gererCotisations(membre)}" />

View File

@@ -0,0 +1,22 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:composite="http://xmlns.jcp.org/jsf/composite"
xmlns:p="http://primefaces.org/ui">
<composite:interface>
<composite:attribute name="itemId" type="java.lang.String" required="true"/>
<composite:attribute name="editPage" type="java.lang.String" required="true"/>
<composite:attribute name="styleClass" type="java.lang.String" required="false" default=""/>
<composite:attribute name="iconOnly" type="java.lang.Boolean" required="false" default="false"/>
</composite:interface>
<composite:implementation>
<p:commandButton value="#{cc.attrs.iconOnly ? null : 'Modifier'}"
icon="pi pi-pencil"
title="Modifier"
styleClass="ui-button-rounded #{cc.attrs.iconOnly ? '' : 'ui-button-text'} ui-button-warning #{cc.attrs.styleClass}"
onclick="window.location='#{request.contextPath}#{cc.attrs.editPage}?id=#{cc.attrs.itemId}';return false;"/>
</composite:implementation>
</html>