Comment paramétrer le cycle de vie - Gestion de la visibilité des Smarts Fields
Prérequis
Afin de pouvoir suivre ce guide, il faut préalablement avoir vu comment gérer les rendus d’un Smart Element.
Il faut aussi avoir créé le cycle de vie d’un Smart Element.
Comment procéder ?
- Créer les masques
Créer le masque permettant de gérer la visibilité des Smart Fields pour les cuisiniers
npx @anakeen/anakeen-cli createSetting --type Masks --name Plat_E2_Mask_Cuisinier --associatedSmartStructure PLAT
<?xml version="1.0" encoding="UTF-8"?>
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0" xmlns:ui="https://platform.anakeen.com/4/schemas/ui/1.0">
<ui:mask xmlns:ui="https://platform.anakeen.com/4/schemas/ui/1.0" name="PLAT_E2_MASK_CUISINIER" label="Plat_E2_Mask_Cuisinier" structure="PLAT">
<ui:visibility-list>
<ui:visibility field="consommable_title" value="S"/>
<ui:visibility field="consommable_description" value="S"/>
<ui:visibility field="consommable_price_incl_vat" value="R"/>
<ui:visibility field="plat_type" value="R"/>
<ui:visibility field="plat_validity_date" value="R"/>
</ui:visibility-list>
</ui:mask>
</smart:config>
Créer le masque permettant de gérer la visibilité des Smart Fields pour la direction
npx @anakeen/anakeen-cli createSetting --type Masks --name Plat_E2_Mask_Directeur --associatedSmartStructure PLAT
<?xml version="1.0" encoding="UTF-8"?>
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0" xmlns:ui="https://platform.anakeen.com/4/schemas/ui/1.0">
<ui:mask xmlns:ui="https://platform.anakeen.com/4/schemas/ui/1.0" name="PLAT_E2_MASK_DIRECTEUR" label="Plat_E2_Mask_Directeur" structure="PLAT">
<ui:visibility-list>
<ui:visibility field="consommable_title" value="R"/>
<ui:visibility field="consommable_description" value="R"/>
<ui:visibility field="consommable_price_incl_vat" value="W"/>
<ui:visibility field="plat_type" value="R"/>
<ui:visibility field="plat_validity_date" value="W"/>
</ui:visibility-list>
</ui:mask>
</smart:config>
- Référencer ces masques dans un contrôle de vue qu’il faut tout d’abord créer :
npx @anakeen/anakeen-cli createSetting --type ViewControl --name Plat_E2 --associatedSmartStructure PLAT
<?xml version="1.0" encoding="UTF-8"?>
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0" xmlns:ui="https://platform.anakeen.com/4/schemas/ui/1.0">
<ui:view-control xmlns:ui="https://platform.anakeen.com/4/schemas/ui/1.0" name="CVDOC_PLAT_E2" label="Plat_E2" structure="PLAT">
<!--region View control configuration ======-->
<ui:view-list>
<ui:view name="EDIT_PLAT_E2_DIRECTEUR" label="Modifier" display-mode="edition" order="10" menu-displayed="false">
<ui:mask ref="PLAT_E2_MASK_DIRECTEUR"/>
</ui:view>
<ui:view name="EDIT_PLAT_E2_CUISINIER" label="Modifier" display-mode="edition" order="20" menu-displayed="false">
<ui:mask ref="PLAT_E2_MASK_CUISINIER"/>
</ui:view>
</ui:view-list>
<!--endregion View control configuration ===-->
</ui:view-control>
<!--region Cvdoc views : Accesses ==========-->
<smart:access-configuration name="CVDOC_PLAT_E2" label="Profil CVDOC" profil-type="CVDOC"
access-structure="PLAT" policy="SET">
<smart:element-access access="EDIT_PLAT_E2_DIRECTEUR" account="role_direction"/>
<smart:element-access access="EDIT_PLAT_E2_CUISINIER" account="role_cuisinier"/>
</smart:access-configuration>
<!-- endregion Cvdoc views : Accesses ==========-->
</smart:config>
- Référencer et lier le contrôle de vue à l’étape voulue dans le fichier de configufation du Smart Element associé à la
Smart Structure du workflow
src/vendor/<vendorName>/<moduleName>/SmartStructures/Plat/PlatWorkflows/WdocPlatWorkflow/510-WdocPlatWorkflowSettings.xml
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
<!--Timer and Mail templates workflow references-->
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
<workflow:config xmlns:workflow="https://platform.anakeen.com/4/schemas/workflow/1.0" name="WDOC_PLAT" structure="PLAT" model="WFAM_PLAT">
<workflow:steps>
<workflow:step ref="plat_e2">
<workflow:view-control ref="CVDOC_PLAT_E2"/>
</workflow:step>
</workflow:steps>
<workflow:transitions/>
</workflow:config>
Résultat / Vérification
Créons un nouveau Plat
puis avançons dans le workflow jusqu'à l'état A la carte
afin de vérifier si les masques sont
bien appliqués.
http://localhost:8080/api/v2/smart-elements/PLAT/views/!defaultCreation.html
- Masque de la direction (en édition)
- Masque des cuisiniers (en consultation)
Astuce
Pour pouvoir créer un smart element dynamiquement (pendant une transition par exemple) vous pouvez utiliser la fonction
createDocument()
.
- Voici la documentation associée : Documentation createDocument