# Contrôle de vue
Les contrôles de vue permettent de spécifier des représentations alternatives pour un Smart Element. L'utilisateur peut choisir parmi ces représentations, en fonction de ses droits, ou alors le contrôle de vue peut déterminer dynamiquement la vue en fonction des droits de l'utilisateur.
Chaque modalité de représentation est appelée une vue.
Chaque vue est composée de :
- un identifiant système (obligatoire) une chaîne alphanumérique, qui doit être unique au sein du contrôle de vue. Elle permet de désigner la vue de manière non ambiguë.
- un libellé (obligatoire) une chaîne permettant de désigner la vue à l'utilisateur. Traduisible, elle est notamment utilisée dans les menus.
- un type (obligatoire) consultation ou édition, détermine pour quelle type de représentation la-dite vue est utilisable.
- une classe de rendu permet d'indiquer les modifications apportées à la vue.
- un masque permet de spécifier un masque à appliquer lors de l'utilisation de cette vue
- un numéro d'ordre entier utilisé pour le choix automatique, il permet d'indiquer un ordre de préférence pour les vues.
- un caractère affichable. Indique si la vue doit être présentée à l'utilisateur sous forme de menu (pour lui permettre de choisir cette représentation), ou ne sera accessible que par programmation. Si la vue est affichable, alors elle sera présentée au moyen de son libellé. Si la vue affichable est la vue d'édition par défaut, celle-ci est affichée à la place du menu "Modifier" avec le nom de la vue. Elle n'est pas affichée ailleurs même si le paramètre "menu" est défini. Un nom de menu si la vue est affichable, indique le libellé du menu sous lequel doit être présentée la vue
# Profilage du contrôle de vue
Il est possible d'appliquer un profil à un contrôle de vue. Ce profil détermine alors pour chaque vue qui a le droit d'y accéder.
Le profil en question peut être statique, mais également dynamique.
# Choix automatique de la vue
Les règles sont les suivantes :
- Restriction à la liste des vues pour lesquelles
- le type (consultation/édition) correspond à l'action courante,
- l'utilisateur est autorisé à y accéder ,
- l'ordre est strictement positif (≥ 1).
- Classement des vues restantes par numéro d'ordre croissant.
- Utilisation de la première des vues restantes (n° d'ordre le plus petit ≥ 1). Si aucune des vues n'est utilisable, c'est la vue par défaut qui est utilisée.
Exemple : Soit le contrôle de vue suivant :
Identifiant de la vue | Label | Type | Ordre de sélection | Affichable | Droit User #1 | Droit User #2 |
---|---|---|---|---|---|---|
VUE1 | Vue n°1 | Consultation | 0 | Oui | X | X |
VUE2 | Vue n°2 | Consultation | 10 | Non | X | |
VUE3 | Vue n°3 | Consultation | 30 | Non | X | |
VUE4 | Vue n°4 | Consultation | 20 | Oui | X | |
VUE5 | Vue n°5 | Édition | 0 | Oui | X | |
VUE6 | Vue n°6 | Édition | 10 | Non | X | |
VUE7 | Vue n°7 | Édition | Non | X | X | |
VUE8 | Vue n°8 | Édition | 20 | Oui | X |
Soit l'url : /api/v2/smart-elements/1234.html
Pour l'utilisateur n°1 :
- Vue utilisée : VUE3
- Vue de modification proposée dans le menu "Modifier" : Défaut (aucune vue d'édition n'est sélectionnable automatiquement)
- Vue proposée sur le menu : VUE1, VUE5, VUE7
Pour l'utilisateur n°2 :
- Vue utilisée : VUE2
- Vue de modification proposée dans le menu "Modifier" : VUE6
- Vues proposées sur le menu : VUE1, VUE4, VUE8
# Libellé du menu modifier
Lors de la consultation, le libellé du menu "modifier" correspondra au libellé de la vue de modification choisie selon l'algorithme précédent.
# Astuces
Les ordres ne sont pas obligés de se suivre. Aussi, vous pouvez numéroter vos vues de 10 en 10, afin de faciliter l'ajout futur d'une nouvelle vue.
Il est recommandé de restreindre la visibilité des attributs sur la Smart Structure, et d'élargir ces visibilités au moyen des contrôles de vue et des masques associés. Ainsi, il devient aisé d'avoir une vue d'administration, utilisant un masque dédié, et ayant le plus faible ordre, et les autres vues restreintes, sans masque et avec un ordre supérieur.
# Configuration d'un contrôle de vue
La configuration d'un contrôle de vue est fait par dans la balise smart:config/ui:view-control
:
<?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 name="MY_CUSTOM_CVDOC" label="Mon libellé" structure="MY_STRUCTURE_NAME">
[...]
</ui:view-control>
</smart:config>
# Configuration générale
Balises | Description |
---|---|
smart:config/ui:view-control/@name | (obligatoire) Référence du contrôle de vue |
smart:config/ui:view-control/@label | Libellé court du contrôle de vue |
smart:config/ui:view-control/@structure | Référence à la structure (permet de gérer des droits dynamiques) |
smart:config/ui:view-control/ui:primary-mask/@ref | Référence du masque primaire |
smart:config/ui:view-control/ui:description | Texte de description du contrôle de vue |
Masque primaire
Le masque primaire est appliqué sur toutes les vues déclarées dans le contrôle de vue. Si une vue déclare aussi un masque, ce masque secondaire sera appliqué aussi une fois le masque primaire appliqué.
Exemple :
<?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 name="{Nom_Logique_CVDOC}" label="{LIBELLE}" structure="{SMARTSTRUCTURE}">
<ui:description>Différentes vues pour personnaliser les formulaires des mes Smart Elements</ui:description>
<ui:primary-mask ref="MY_PRIMARY_MASK"/>
</ui:view-control>
</smart:config>
# Configuration d'une vue
La balise _smart:config/ui:view-control/ui:view-list
contient la liste des vues disponibles.
smart:config/ui:view-control/ui:view-list
contient une liste de<ui:view>
.
Balises de configuration des vues | Description |
---|---|
smart:config/ui:view-control/ui:view-list/ui:view/@name | (obligatoire) Token servant d'identifiant unique |
smart:config/ui:view-control/ui:view-list/ui:view/@label | (obligatoire) Nom d'affichage |
smart:config/ui:view-control/ui:view-list/ui:view/@display-mode | (obligatoire) Mode d'affichage : 'consultation' / 'edition' |
smart:config/ui:view-control/ui:view-list/ui:view/@order | (Entier) : Ordre de pour la sélection automatique |
smart:config/ui:view-control/ui:view-list/ui:view/@menu-displayed | (Booléen / Valeur par défaut : true) Indique qu'un élément de menu sera affiché dans la barre de menu standard du Smart Element. La sélection de ce menu affichera le Smart Element avec la vue indiquée. |
smart:config/ui:view-control/ui:view-list/ui:view/@parent-menu-id | (Chaîne de caractères) Seulement si menu-displayed est à true, indique que l'élément de menu sera affiché dans un menu déroulant dont le libellé sera la valeur de cet attribut |
smart:config/ui:view-control/ui:view-list/ui:view/ui:mask/@ref | Référence du masque à appliquer sur cette vue |
smart:config/ui:view-control/ui:view-list/ui:view/ui:render-config/@class | Référence de la classe PHP de rendu associée |
smart:config/ui:view-control/ui:creation-view/@ref | Référence à la vue utilisée pour la création (parmi celles définies dans la balise view-list |
Exemple :
<?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 name="{Nom_Logique_CVDOC}" label="{LIBELLE}" structure="{SMARTSTRUCTURE}">
<ui:view-list>
<ui:view name="ABC_DISPLAY_ADMIN" label="Display Admin" display-mode="consultation" order="1" menu-displayed="false"/>
<ui:view name="ABC_DISPLAY_DEFAULT" label="Display Default" display-mode="consultation" order="10" menu-displayed="false"/>
<ui:view name="ABC_DISPLAY_CREATE" label="Display Default" display-mode="edition" menu-displayed="false" >
<ui:mask ref="MY_MASK"/>
<ui:render-config class="My\Custom\MyRender"/>
</ui:view>
</ui:view-list>
<ui:creation-view ref="ABC_DISPLAY_CREATE"/>
</ui:view-control>
</smart:config>