feat(client): Transformation des boutons d'action en Rounded Text (icône + texte)

- Ajout de l'attribut value (texte) à tous les boutons d'action
- Ajout de la classe ui-button-text pour le style Rounded Text de PrimeFaces
- Boutons mis à jour :
  * action-button-view : 'Consulter' + icône search
  * action-button-edit : 'Modifier' + icône pencil
  * action-button-toggle : 'Activer/Désactiver' + icône check/ban
  * action-button-delete : 'Supprimer' + icône trash

- Application dans liste.xhtml des organisations avec les composants DRY/WOU
- Largeur de la colonne Actions augmentée : 220px → 280px

Style Rounded Text = Boutons arrondis avec icône ET texte pour meilleure UX
This commit is contained in:
dahoud
2025-11-29 21:58:01 +00:00
parent 1de5fe4534
commit c27ceab3bd
5 changed files with 49 additions and 44 deletions

View File

@@ -164,39 +164,44 @@
icon="#{org.statut == organisationsBean.statutActive ? 'pi pi-check' : 'pi pi-times'}"/> icon="#{org.statut == organisationsBean.statutActive ? 'pi pi-check' : 'pi pi-times'}"/>
</p:column> </p:column>
<!-- Actions - Note: actionListener avec paramètres doit être directement dans la page --> <!-- Actions (DRY/WOU: action-button-* avec ui:button-text pour Rounded Text) -->
<p:column headerText="Actions" style="width: 220px;"> <p:column headerText="Actions" style="width: 280px;">
<p:commandButton icon="pi pi-search" <!-- Bouton Consulter -->
title="Consulter" <ui:include src="/templates/components/buttons/action-button-view.xhtml">
styleClass="ui-button-rounded ui-button-info mr-2" <ui:param name="id" value="#{org.id}"/>
onclick="window.location='#{request.contextPath}/pages/secure/organisation/detail.xhtml?id=#{org.id}';return false;"/> <ui:param name="detailPage" value="/pages/secure/organisation/detail.xhtml"/>
<ui:param name="styleClass" value="mr-2"/>
<p:commandButton icon="pi pi-pencil" </ui:include>
title="Modifier"
actionListener="#{organisationsBean.setOrganisationSelectionnee(org)}"
oncomplete="PF('dlgModifier').show();"
update=":formModifier"
styleClass="ui-button-rounded ui-button-warning mr-2"/>
<p:commandButton icon="#{org.statut == organisationsBean.statutActive ? 'pi pi-ban' : 'pi pi-check'}"
title="#{org.statut == organisationsBean.statutActive ? 'Désactiver' : 'Activer'}"
actionListener="#{organisationsBean.basculerStatutOrganisation(org)}"
update=":formOrganisations:dtOrganisations :formOrganisations:messages"
styleClass="ui-button-rounded #{org.statut == organisationsBean.statutActive ? 'ui-button-secondary' : 'ui-button-success'} mr-2">
<p:confirm header="Confirmation"
message="Êtes-vous sûr de vouloir changer le statut de cette organisation ?"
icon="pi pi-exclamation-triangle"/>
</p:commandButton>
<p:commandButton icon="pi pi-trash" <!-- Bouton Modifier -->
title="Supprimer" <ui:decorate template="/templates/components/buttons/action-button-edit.xhtml">
actionListener="#{organisationsBean.supprimerOrganisation(org)}" <ui:param name="update" value=":formModifier"/>
update=":formOrganisations:dtOrganisations :formOrganisations:messages" <ui:param name="dialogWidget" value="dlgModifier"/>
styleClass="ui-button-rounded ui-button-danger"> <ui:param name="styleClass" value="mr-2"/>
<p:confirm header="Confirmation" <ui:define name="action">
message="Êtes-vous sûr de vouloir supprimer cette organisation ? Cette action est irréversible." #{organisationsBean.setOrganisationSelectionnee(org)}
icon="pi pi-exclamation-triangle"/> </ui:define>
</p:commandButton> </ui:decorate>
<!-- Bouton Toggle Statut -->
<ui:decorate template="/templates/components/buttons/action-button-toggle.xhtml">
<ui:param name="update" value=":formOrganisations:dtOrganisations :formOrganisations:messages"/>
<ui:param name="isActive" value="#{org.statut == organisationsBean.statutActive}"/>
<ui:param name="confirmMessage" value="Êtes-vous sûr de vouloir changer le statut de cette organisation ?"/>
<ui:param name="styleClass" value="mr-2"/>
<ui:define name="action">
#{organisationsBean.basculerStatutOrganisation(org)}
</ui:define>
</ui:decorate>
<!-- Bouton Supprimer -->
<ui:decorate template="/templates/components/buttons/action-button-delete.xhtml">
<ui:param name="update" value=":formOrganisations:dtOrganisations :formOrganisations:messages"/>
<ui:param name="confirmMessage" value="Êtes-vous sûr de vouloir supprimer cette organisation ? Cette action est irréversible."/>
<ui:define name="action">
#{organisationsBean.supprimerOrganisation(org)}
</ui:define>
</ui:decorate>
</p:column> </p:column>
</p:dataTable> </p:dataTable>
</ui:define> </ui:define>

View File

@@ -17,11 +17,11 @@
</ui:decorate> </ui:decorate>
--> -->
<p:commandButton icon="pi pi-trash" <p:commandButton value="Supprimer"
title="Supprimer" icon="pi pi-trash"
actionListener="#{action}" actionListener="#{action}"
update="#{update}" update="#{update}"
styleClass="ui-button-rounded ui-button-danger #{not empty styleClass ? styleClass : ''}"> styleClass="ui-button-rounded ui-button-text ui-button-danger #{not empty styleClass ? styleClass : ''}">
<p:confirm header="Confirmation" <p:confirm header="Confirmation"
message="#{empty confirmMessage ? 'Êtes-vous sûr de vouloir supprimer cet élément ?' : confirmMessage}" message="#{empty confirmMessage ? 'Êtes-vous sûr de vouloir supprimer cet élément ?' : confirmMessage}"
icon="pi pi-exclamation-triangle"/> icon="pi pi-exclamation-triangle"/>

View File

@@ -17,11 +17,11 @@
</ui:decorate> </ui:decorate>
--> -->
<p:commandButton icon="pi pi-pencil" <p:commandButton value="Modifier"
title="Modifier" icon="pi pi-pencil"
actionListener="#{action}" actionListener="#{action}"
oncomplete="PF('#{dialogWidget}').show();" oncomplete="PF('#{dialogWidget}').show();"
update="#{update}" update="#{update}"
styleClass="ui-button-rounded ui-button-warning #{not empty styleClass ? styleClass : ''}"/> styleClass="ui-button-rounded ui-button-text ui-button-warning #{not empty styleClass ? styleClass : ''}"/>
</ui:composition> </ui:composition>

View File

@@ -18,11 +18,11 @@
</ui:decorate> </ui:decorate>
--> -->
<p:commandButton icon="#{isActive ? 'pi pi-ban' : 'pi pi-check'}" <p:commandButton value="#{isActive ? 'Désactiver' : 'Activer'}"
title="#{isActive ? 'Désactiver' : 'Activer'}" icon="#{isActive ? 'pi pi-ban' : 'pi pi-check'}"
actionListener="#{action}" actionListener="#{action}"
update="#{update}" update="#{update}"
styleClass="ui-button-rounded #{isActive ? 'ui-button-secondary' : 'ui-button-success'} #{not empty styleClass ? styleClass : ''}"> styleClass="ui-button-rounded ui-button-text #{isActive ? 'ui-button-secondary' : 'ui-button-success'} #{not empty styleClass ? styleClass : ''}">
<p:confirm header="Confirmation" <p:confirm header="Confirmation"
message="#{empty confirmMessage ? 'Êtes-vous sûr de vouloir changer le statut ?' : confirmMessage}" message="#{empty confirmMessage ? 'Êtes-vous sûr de vouloir changer le statut ?' : confirmMessage}"
icon="pi pi-exclamation-triangle"/> icon="pi pi-exclamation-triangle"/>

View File

@@ -14,9 +14,9 @@
</ui:include> </ui:include>
--> -->
<p:commandButton icon="pi pi-search" <p:commandButton value="Consulter"
title="Consulter" icon="pi pi-search"
styleClass="ui-button-rounded ui-button-info #{not empty styleClass ? styleClass : ''}" styleClass="ui-button-rounded ui-button-text ui-button-info #{not empty styleClass ? styleClass : ''}"
onclick="window.location='#{request.contextPath}#{detailPage}?id=#{id}';return false;"/> onclick="window.location='#{request.contextPath}#{detailPage}?id=#{id}';return false;"/>
</ui:composition> </ui:composition>