Manuel de référence
    • Introduction
    • Smart Data
    • Sécurité
    • Workflow
    • Les essentiels de l'API PHP
    • Composants graphiques
    • UIs de Smart Element
    • Internationalisation
    • Scripts
    • Module
    • API REST
    • Routes
    • Moteurs de transformation
    • Recherche générale
    • Supervision
    • Techniques avancées
    • Tableaux de bord
    • Workers
    Anakeen Platform 4
    Anakeen
    • Introduction
    • Smart Data
    • Sécurité
    • Workflow
    • Les essentiels de l'API PHP
    • Composants graphiques
    • UIs de Smart Element
    • Internationalisation
    • Scripts
    • Module
    • API REST
    • Routes
    • Moteurs de transformation
    • Recherche générale
    • Supervision
    • Techniques avancées
    • Tableaux de bord
    • Workers
    Anakeen Platform 4
    Anakeen
    • Représentation des Smart Elements

      • Introduction
        • Éléments inclus
        • Illustrations
          • Responsive design
      • Concepts
        • Rendu
        • Vue
      • Masque
        • Configuration d'un masque {#maskxml}
        • Visibilité des SmartFields {#maskvisibility}
          • Visibilité des SmartFields structurants {#maskvisibilitystruc}
      • Contrôle de vue
        • Profilage du contrôle de vue
        • Choix automatique de la vue {#autochoice}
        • Libellé du menu modifier
        • Astuces
        • Configuration d'un contrôle de vue {#viewcontrolxml}
        • Configuration générale
        • Configuration d'une vue
      • Classe de rendu
        • Classes de configuration de rendu par défaut
      • Méthodes de la classe de configuration de rendu

      • Options de rendu
        • Options de représentation type Smart Element {#smartElement-options}
          • setStickyTabs
          • setOpenFirstTab
          • setTabPlacement
        • Options de rendu communes à tout type de Smart Fields {#common-options}
          • showEmptyContent {#common-showemptycontent}
          • setLink
          • setLabelPosition {#common-setlabelposition}
          • setAttributeLabel {#common-setattributelabel}
          • setDescription {#common-setdescription}
          • displayDeleteButton {#common-displaydeletebutton}
          • setInputTooltip {#common-setinputtooltip}
          • setAutoCompleteHtmlLabel {#common-setautocompletehtmllabel}
          • addButton {#common-addbutton}
          • setTemplate {#common-settemplate}
          • addHtmlClass {#common-addhtmlclass}
          • removeHtmlClass {#common-removehtmlclass}
          • setHtmlAttribute {#common-sethtmlattribute}
          • setTranslations {#common-settranslations}
          • setCustomWidgetAttributeFunction {#common-setcustomwidgetattributefunction}
        • Options de représentation type account {#account-options}
        • Options de représentation type array {#array-options}
          • setRowCountThreshold {#array-setrowcountthreshold}
          • disableRowAdd {#array-disablerowadd}
          • disableRowDel {#array-disablerowdel}
          • disableRowMove {#array-disablerowmove}
          • setRowMinLimit {#array-setrowminlimit}
          • setRowMaxLimit {#array-setrowmaxlimit}
          • setRowMinDefault {#array-setrowmindefault}
          • setDescription (colonne de tableau) {#column-setdescription}
          • setDescription (tableau) {#array-setdescription}
          • setTranspositionWidth {#array-settranspositionwidth}
          • setTranslations {#array-settranslations}
        • Options de représentation type color {#color-options}
          • setKendoColorConfiguration {#color-setkendocolorconfiguration}
        • Options de représentation type date {#date-options}
          • setKendoDateConfiguration {#date-setkendodateconfiguration}
          • setFormat {#date-setformat}
          • setPlaceHolder {#date-setplaceholder}
        • Options de représentation type docid {#docid-options}
          • setKendoMultiSelectConfiguration {#docid-setkendomultiselectconfiguration}
          • setPlaceHolder {#docid-setplaceholder}
          • setFormat {#docid-setformat}
          • setDocumentIconSize {#docid-setdocumenticonsize}
          • addCreateDocumentButton {#docid-addcreatedocumentbutton}
        • Options de représentation type double {#double-options}
          • setDecimalPrecision {#double-setdecimalprecision}
        • Options de représentation type enum {#enum-options}
          • setDisplay {#enum-setdisplay}
          • useSourceUri {#enum-usesourceuri}
          • useFirstChoice {#enum-usefirstchoice}
          • useOtherChoice {#enum-useothertchoice}
          • setPlaceHolder {#enum-setplaceholder}
          • setTranslations {#enum-settranslations}
          • setOrderBy {#enum-setorderby}
        • Options de représentation type file {#file-options}
          • setContentDispositionInline {#file-setcontentdispositioninline}
          • setTranslations {#file-settranslations}
          • setPlaceHolder {#file-setplaceholder}
          • setMimeIconSize {#file-setmimeiconsize}
        • Options de représentation type frame {#frame-options}
          • setCollapse {#frame-setcollapse}
          • setDescription (cadre) {#frame-setdescription}
          • setResponsiveColumns {#frame-setresponsivecolumns}
        • Options de représentation type htmltext {#htmltext-options}
          • setHeight {#htmltext-setheight}
          • setToolbar {#htmltext-settoolbar}
          • setKendoEditorConfiguration {#htmltext-setKendoEditorConfiguration}
          • setAnchorsOptions {#htmltext-setanchorsoptions}
        • Options de représentation type image {#image-options}
          • setThumbnailSize {#image-setthumbnailsize}
        • Options de représentation type int {#int-options}
          • setKendoNumericConfiguration {#int-setkendonumericconfiguration}
          • setFormat {#int-setformat}
          • setTranslations {#int-settranslations}
          • setPlaceHolder {#int-setplaceholder}
        • Options de représentation type longtext {#longtext-options}
          • setMaxDisplayedLineNumber {#longtext-setmaxdisplayedlinenumber}
        • Options de représentation type money {#money-options}
          • setCurrency {#money-setcurrency}
        • Options de représentation type password {#password-options}
          • hideValue {#password-hidevalue}
          • setPlaceHolder {#password-setplaceholder}
        • Options de représentation type tab {#tab-options}
          • setTooltipLabel {#tab-settooltiplabel}
          • setDescription (onglet) {#tab-setdescription}
        • Options de représentation type text {#text-options}
          • setMaxLength {#text-setmaxlength}
          • setKendoAutoCompleteConfiguration {#text-setkendoautocompleteconfiguration}
          • setPlaceHolder {#text-setplaceholder}
          • setFormat {#text-setformat}
        • Options de représentation type time {#time-options}
          • setKendoTimeConfiguration {#time-setkendotimeconfiguration}
          • setFormat {#time-setformat}
          • setPlaceHolder {#time-setplaceholder}
        • Options de représentation type timestamp {#timestamp-options}
          • setKendoDateConfiguration {#timestamp-setkendodateconfiguration}
      • Associer une classe de rendu à un Smart Element
        • Fichiers de surcharge des éléments de rendu {#overloadRender}
          • Format
          • Prise en compte des surcharges
          • Définir l'accès à un rendu de Smart Element
          • Désactiver le calcul des etag {#disableetag}
        • Classe d'accès à un rendu de Smart Element
        • Définir les rendus dans un contrôle de vue
        • Définir un rendu par défaut pour une Smart Structure
      • Contrôleurs clients (javascript)
      • Contrôleur global
        • Méthodes du contrôleur global
          • addSmartElement
          • getScopedController
          • getControllers
          • addEventListener
          • registerFunction
          • setVerbose
      • Contrôleur restreint
        • Objets internes du contrôleur
          • Smart Element {#internal-SE}
          • Smart Field {#internal-SF}
          • Types de Smart Field {#smart-field-types}
        • Énuméré
          • Fenêtre de transition {#SE-transition}
          • Menu
        • Carte des événements du contrôleur restreint
          • Ordonnancement des événements
          • Modification
          • Sauvegarde
          • Suppression
          • Restauration
          • Passage de transition
          • Autres
        • Méthodes du contrôleur restreint de Smart Element
          • addEventListener {#addEventListener}
          • addConstraint
          • addCustomClientData
          • appendArrayRow
          • changeStateSmartElement
          • cleanSmartFieldErrorMessage
          • deleteSmartElement
          • drawTab
          • fetchSmartElement
          • getCustomServerData
          • getProperties
          • getProperty
          • getSmartFields
          • getSmartField
          • getValues
          • getValue
          • getMenus
          • getMenu
          • getCustomClientData
          • hasSmartField
          • hideSmartField
          • hasMenu
          • isLoaded
          • isModified
          • injectJS
          • injectCSS
          • insertBeforeArrayRow
          • listConstraints
          • listEventListeners
          • maskSmartElement
          • removeEventListeners
          • removeCustomClientData
          • removeArrayRow
          • restoreSmartElement
          • removeConstraint
          • reinitSmartElement
          • saveSmartElement
          • setValue
          • setSmartFieldErrorMessage
          • selectTab
          • showMessage
          • showSmartField
          • triggerEvent
          • tryToDestroy
          • unmaskSmartElement
        • Liste des événements déclenchés sur le Smart Element Ui
          • actionClick {#actionClick}
          • afterDelete
          • afterSave
          • afterRestore
          • beforeClose
          • beforeDelete
          • beforeRender
          • beforeRestore
          • beforeSave
          • beforeValidate
          • close
          • displayError
          • displayMessage
          • ready
        • Liste des événements déclenchés sur les Smart Fields
          • smartFieldAnchorClick
          • smartFieldArrayChange
          • smartFieldBeforeRender
          • smartFieldDownloadFile
          • smartFieldHelperResponse
          • smartFieldHelperSearch
          • smartFieldHelperSelect
          • smartFieldEnumResponse {#smartfieldenumresponse}
          • smartFieldEnumSearch {#smartfieldenumsearch}
          • smartFieldEnumSelect {#smartfieldenumselect}
          • smartFieldReady
          • smartFieldChange
          • smartFieldUploadFile
          • smartFieldUploadFileDone
          • smartFieldBeforeTabSelect
          • smartFieldAfterTabSelect
          • smartFieldTabChange
          • smartFieldConstraintCheck
          • smartFieldCreateDialogSmartElementReady
          • smartFieldCreateDialogSmartElementBeforeSetFormValues
          • smartFieldCreateDialogSmartElementBeforeSetTargetValue
          • smartFieldCreateDialogSmartElementBeforeClose
          • smartFieldCreateDialogSmartElementBeforeDestroy
          • beforeDisplayTransition
          • afterDisplayTransition
          • beforeTransitionClose
          • beforeTransition
          • failTransition
          • successTransition
      • Rendu de transition
        • Associer une classe de rendu de transition via le cycle de vie
        • Classe de rendu de transition
          • getCssReferences
          • getJsReferences
          • getTemplates
          • getTransitionParameters
          • getRenderOptions
    • Aide à la saisie

    # Masque

    Les masques permettent de changer la visibilité des SmartField d'un SmartElement.

    Ainsi, il est possible de définir pour chaque SmartField de la SmartStructure sa nouvelle visibilité, ainsi que de changer son caractère obligatoire.

    Remarques

    • Il est important ici de rappeler que la visibilité des SmartFields ne garantit aucunement la confidentialité des informations, puisque les SmartFields Hidden sont quand même présents dans la DOM comme dans le SmartElement, les visibilités des SmartFields structurants impactent celles des SmartFields qu'ils contiennent.
    • Ainsi, il est souvent plus efficace de changer la visibilité d'une frame que de l'ensemble de ses SmartFields (voir le calcul de visibilité pour plus de détails).
    • Lors de l'import de masques, une contrainte vérifie que l'ensemble des SmartFields référencés dans le masque existent dans la SmartStructure à laquelle est rattaché le masque.

    # Configuration d'un masque

    La structure suivante sera la même "base" adoptée pour tout nouveau masque :

    <?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 name="{NAME}" label="{labelName}" structure="{SMARTSTRUCTURE}">
            [...]
        </ui:mask>
    </smart:config>
    

    Deux balises viennent ensuite se greffer à <ui:mask>

    • smart:config/ui:mask/ui:visibility-list contiendra une liste de <ui:visibility> ayant pour attributs :
      • smart:config/ui:mask/ui:visibility-list/ui:visibility/@field* : Nom du SmartField concerné par le masque
      • smart:config/ui:mask/ui:visibility-list/ui:visibility/@value* : H, O, R, S, U, W > (Voir la partie visibilité des SmartFields)
            <ui:visibility-list>
                <ui:visibility field="field_id_1" value="H"/>   <!-- SmartField caché : présent dans la DOM mais non affiché -->
                <ui:visibility field="field_id_2" value="O"/>   <!-- SmartField visible en modification uniquement et modifiable -->
                <ui:visibility field="field_id_3" value="R"/>   <!-- SmartField visible en consultation uniquement -->
                <ui:visibility field="field_id_4" value="S"/>   <!-- SmartField visible en consultation & modification mais non modifiable -->
                <ui:visibility field="field_id_5" value="U"/>   <!-- SmartField(Array) visible en consultation et modification. Nombre de ligne statique. -->
                <ui:visibility field="field_id_6" value="W"/>   <!-- SmartField visible en consultation & modification et modifiable -->
                [...]
            </ui:visibility-list>
    
    • smart:config/ui:mask/ui:need-list contiendra une liste de <ui:need> ayant eux aussi pour attributs :
      • smart:config/ui:mask/ui:ui:need-list/ui:need/@field* : Nom du SmartField concerné par le masque
      • smart:config/ui:mask/ui:ui:need-list/ui:need/@value* : true / false
            <ui:need-list>
                <ui:need field="other_field_id_1" value="true"></ui:need>
                <ui:need field="other_field_id_2" value="true"></ui:need>
                [...]
            </ui:need-list>
    

    Remarque

    Si l'une ou l'autre des listes ne vous est pas nécessaire, il faut tout de même renseigner une balise vide

    Exemple: <ui:need-list/>

    # Visibilité des SmartFields

    La visibilité d'un SmartField est une caractéristique de présentation de sa valeur.

    Elle ne contrôle pas l'accès mais seulement la présentation de la valeur.

    Les différentes visibilités disponibles sont les suivantes :

    H : SmartField caché : présent dans la dom, il ne sera pas affiché.

    O : SmartField visible en modification uniquement, et modifiable.

    R : SmartField visible uniquement en consultation.

    S : SmartField visible en consultation et en modification, mais non modifiable.

    U (applicable uniquement au type array) : Array affiché en consultation et en modification, mais dont le nombre de lignes ne peut pas être modifié.

    W : SmartField visible en consultation et en modification, et modifiable

    Visibilité Mode Visible sur la page Présent dans la DOM Modifiable par requête
    H Consultation Non Non
    R Oui Oui
    W Oui Oui
    O Non Non
    S Oui Oui
    H Édition Non Oui Oui
    R Non Oui Oui
    W Oui Oui Oui
    O Oui Oui Oui
    S Oui Oui Oui

    Sécurité

    Il est important de distinguer la visibilité et les droits : La visibilité n'offre pas de protection contre l'accès à l'information.

    # Visibilité des SmartFields structurants

    Les visibilités des SmartFields structurants impactent celle des SmartFields qu'ils contiennent. Ainsi, par exemple, un SmartField W dans un cadre H sera en fait en H. Voici la table qui récapitule ces cas :

    SmartField structurant SmartField Visibilité résultante
    H H H
    H O H
    H R H
    H S H
    H U H
    H W H
    O H H
    O O O
    O R R
    O S S
    O U U
    O W O
    R H H
    R O R
    R R R
    R S R
    R U R
    R W R
    S H H
    S O O
    S R R
    S S S
    S U U
    S W S
    W H H
    W O O
    W R R
    W S S
    W U U
    W W W

    Les tableaux en visibilité U sont transparents lors de cette propagation. Pour les SmartFields contenus dans un tableau en visibilité U, il faut donc regarder le SmartField structurant du-dit tableau.

    ← Concepts Contrôle de vue →