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

    # Contrôleur global

    Le contrôleur global est accessible depuis la librairie @anakeen/user-interfaces/components/lib/AnkController.

    Par exemple :

    import ankSmartController from "@anakeen/user-interfaces/components/lib/AnkController";
    
    ankSmartController;
    

    # Méthodes du contrôleur global

    # addSmartElement

    Ajoute un Smart Element sur l'élément DOM spécifié

    # Arguments

    • DOMReference (JQuery|String|HTMLElement): obligatoire. Référence DOM sur laquelle va être rendu le Smart Element
    • viewData (Object): obligatoire. Objet définissant le Smart Element à ajouter. Il contient les propriétés suivantes :
      • initid (Number|String): obligatoire. Identifiant du Smart Element
      • viewId (String, default: "!defaultConsultation"): optionnel. Identifiant de la vue à appliquer au Smart Element
      • revision (Number, default: -1): optionnel. Numéro de révision
      • customClientData (Object, default: {}): optionnel. Données personnalisées à attacher au Smart Element.
    • options (Object): optionnel. Options contenant les champs suivants :
      • loading (Boolean, default: true): Utilise la barre de chargement par défaut
      • notification (Boolean, default: true): Utilise le système de notification par défaut
      • controllerName (String): Spécifie l'identifiant à utiliser pour le contrôleur. Il doit être unique parmi tous les identifiants de contrôleur.
      • controllerPrefix (String, default: "smart-element-controller-"): Spécifie le préfixe à utiliser pour le calcul de l'identifiant du contrôleur. L'option est ignorée si l'option controllerName est spécifiée.

    # Retour

    Si l'option controllerName est utilisé, la fonction renvoie une Promise qui se résout sur la valeur de l'option controllerName. Sinon une Promise se résolvant sur un identifiant calculé est retourné.

    Cet identifiant est l'identifiant du contrôleur restreint du Smart Element ajouté. Il est utilisable par la méthode getScopedController.

    # Exceptions

    Exception si le Smart Element n'a pas pu être ajouté.

    # Exemple

    # Ajout d'un Smart Element en édition
    <div id="my-form"></div>
    
    import globalController from "@anakeen/user-interfaces/components/lib/AnkController";
    
    globalController.addSmartElement("#my-form", {
      initid: "DEMANDE_FORM",
      viewId: "!defaultEdition"
    });
    // Retourne une Promise qui se résout sur smart-element-controller-23 (par exemple)
    
    # Ajout d'un Smart Element avec un identifiant de contrôleur spécifique
    <div id="my-form"></div>
    
    import globalController from "@anakeen/user-interfaces/components/lib/AnkController";
    globalController.addSmartElement(
      "#my-form",
      {
        initid: "DEMANDE_FORM"
      },
      {
        controllerName: "my-controller-id"
      }
    );
    // Retourne une Promise qui se résout sur my-controller-id
    
    # Ajout d'une fonction de callback après un addSmartElement
    import globalController from "@anakeen/user-interfaces/components/lib/AnkController";
    const myControllerId = globalController.addSmartElement($widgetContainer, options, { loading: true });
    myControllerId.then(id => {
      const currentController = controller.getScopedController(id);
      currentController.addEventListener("ready", () => {
        currentController.injectCSS("monFichier.css");
        currentController._element.find(".dcpDocument").addClass("no--header");
      });
    });
    

    # getScopedController

    Permet de récupérer un contrôleur de Smart Element spécifique.

    # Arguments

    • controllerUid (String| HTMLElement | JQueryElement): obligatoire. Identifiant unique du contrôleur à récupérer. Il est également possible de donner un élément DOM ou JQuery, dans ce cas le contrôleur du Smart Element contenant ou correspondant à cet élément est retourné.

    # Retour

    Retourne le contrôleur correspondant à l'identifiant donné en argument.

    # Exceptions

    Lève une exception aucun contrôleur ne correspond à l'identifiant donné.

    # Exemple

    # Récupère un contrôleur
    import globalController from "@anakeen/user-interfaces/components/lib/AnkController";
    globalController.getScopedController("my-controller-id");
    
    # Récupère un contrôleur à partir d'un élément JQuery
    import globalController from "@anakeen/user-interfaces/components/lib/AnkController";
    const scopedController = globalController.getScopedController($("#my-form"));
    
    import globalController from "@anakeen/user-interfaces/components/lib/AnkController";
    const scopedController = globalController.getScopedController($(".dcpAttribute[data-attrid=my_field_title]"));
    // Retourne le contrôleur du Smart Element contenant le smart field "my_field_title"
    

    # getControllers

    Liste l'ensemble des contrôleurs de Smart Element

    # Arguments

    Pas d'argument.

    # Retour

    Retourne la liste de tous les contrôleurs de Smart Element.

    # Exceptions

    Pas d'exception.

    # Exemple

    import globalController from "@anakeen/user-interfaces/components/lib/AnkController";
    const allControllers = globalController.getControllers();
    

    # addEventListener

    Permet d'écouter globalement un événement de Smart Element sur l'ensemble des Smart Element de la page.

    # Arguments

    • type (String) : Le type d'événement. Vous pouvez vous référer aux événements émis par le Smart Element, les Smart Fields, les changements d'état ainsi que les événements spécialisés.

    • option (Object) : Optionnel. Il contient les propriétés suivantes :

      • check (function, default: () => true) : Cette fonction permet d'indiquer pour quel type de Smart Element s'applique l'écouteur. Elle reçoit en entrée un objet Smart Element décrivant le Smart Element courant. Elle doit retourner true pour indiquer que l'écouteur est applicable pour ce type de Smart Element.
      • name (String): Optionnel. Nom de l'écouteur. Ce nom est utilisé pour identifier l'écouteur et le supprimer. Le nom peut posséder un namespace. Par défaut un nom est calculé automatiquement.
      • once (Boolean, default: false) : si once est à true, l'écouteur n'est appliqué qu'une seule fois et ensuite supprimé.
      • persistent (Boolean, default: true) : si persistent est à false, l'écouteur est supprimé lors du prochain fetchSmartElement.
    • callback (function) : cette fonction est appelée lorsque l'événement type est émis. Elle reçoit les paramètres suivants dans cet ordre:

      • event : Objet événement standard de jQuery .
      • smartElement : l'objet Smart Element écouté.
      • parameters : les paramètres de l'événement.

    Persistence

    Les événements du contrôleur global sont par défaut persistent au contraire de ceux du contrôleur restreint qui sont volatiles par défaut.

    # Retour

    Pas de retour

    # Exceptions

    Pas d'exception.

    # Exemple

    # Écouter l'événement 'actionClick' sur tous les Smart Element de type DEVBILL dans la page
    import globalController from "@anakeen/user-interfaces/components/lib/AnkController";
    globalController.addEventListener(
      "actionClick",
      {
        name: "myActionClickListener",
        check: function(smartElement) {
          return smartElement.family.name === "DEVBILL";
        }
      },
      function(event, smartElement, parameters) {
        console.log(`On a enclenché l'action ${parameters.eventId} du smart element ${smartElement.initid}`);
      }
    );
    
    # Lire une valeur d'un Smart Field
    import globalController from "@anakeen/user-interfaces/components/lib/AnkController";
    globalController.addEventListener(
      "actionClick",
      {
        name: "myActionClickListener",
        check: function(smartElement) {
          return smartElement.family.name === "DEVBILL";
        }
      },
      function(event, smartElement, parameters) {
        // en utilisant le contexte interne this
        const smartFieldValue = this.getValue("bill_title");
        // en utilisant les arguments
        const otherFieldValue = smartElement.controller.getValue("bill_author");
      }
    );
    

    # registerFunction

    Enregistre une fonction recevant en argument un contrôleur restreint. Cette fonction doit être tilisée pour le mode library d'injection de JS.

    # Arguments

    • key (String): Clé d'enregistrement de la fonction
    • function (Function): Fonction recevant en paramètre :
      • controller (SmartElementController): Contrôleur restreint au rendu d'un Smart Element en particulier

    # Retour

    Pas de retour

    # Exceptions

    Pas d'exception.

    # Exemple

    Dans

    import globalController from "@anakeen/user-interfaces/components/lib/AnkController";
    
    globalController.registerFunction("myContactFunction", contactController => {
      // **contactController** est un controleur restreint au rendu en cours
    });
    

    WARNING

    La fonction enregistrée est appelée lors de chaque chargement de la vue du Smart Element. Ceci est à prendre en compte lors de l'écriture du corps de la fonction afin d'éviter de possibles effet de bord.
    Les évènements écoutés à l'aide de la fonction addEventListener au sein de la fonction enregistrée, sont déchargés automatiquement lors de la fermeture du Smart Element.

    # setVerbose

    Active ou désactive le mode verbose du contrôleur global. Dans ce mode, les actions effectués par le contrôleur global sont logguées.

    # Arguments

    • enable (Boolean, default: false): Active (si enable est à true) ou désactive (si enable est à false) le mode verbose du contrôleur global.

    # Retour

    Pas de retour

    # Exceptions

    Pas d'exception.

    # Exemple

    # Activation du mode verbose du contrôleur global
    import globalController from "@anakeen/user-interfaces/components/lib/AnkController";
    globalController.setVerbose(true);
    

    ← Contrôleurs clients (javascript) Contrôleur restreint →