<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://xmlns.jcp.org/jsf/html"
                xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                xmlns:p="http://primefaces.org/ui">

    <!--
        Composant bouton "Activer/Désactiver" avec confirmation réutilisable - DRY/WOU
        
        Usage avec ui:decorate pour passer l'action via ui:define :
        <ui:decorate template="/templates/components/buttons/action-button-toggle.xhtml">
            <ui:param name="update" value=":formList:dtItems :formList:messages"/>
            <ui:param name="isActive" value="#{item.statut == 'ACTIVE'}"/>
            <ui:param name="confirmMessage" value="Êtes-vous sûr ?"/>
            <ui:param name="styleClass" value="mr-2"/>
            <ui:define name="action">
                #{bean.toggleItem(item)}
            </ui:define>
        </ui:decorate>
    -->

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

