5.7.4.6 attributeHelperSearch

5.7.4.6.1 Déclenchement

L'aide à la saisie associée à l'attribut a été déclenchée. Cet événement est déclenché avant la récupération de la liste des valeurs sur le serveur et permet de retourner une liste personnalisée.

5.7.4.6.2 Éléments passés au callback

event
objet événement standard de jQuery,
documentObject
un objet document décrivant le document courant.
attributeObject
un objet attribut décrivant l'attribut courant.
options (objet)

Object contenant les propriétés suivantes :

data

Object contenant les propriétés suivantes :

attributes
valeur des attributs en cours, Objet indiquant pour chaque attribut sa valeur (value, displayValue) Les identifiants des attributs sont les clefs de l'objet
filter
filtre en cours,
setResult (function)

Pour ne pas utiliser les valeurs fournies par le serveur, mais une liste personnalisée, il faut appeler cette méthode avec un tableau de résultats en paramètres. Le tableau doit être de la forme suivante :

  • pour chaque ligne un objet avec les propriétés suivantes :

    • title : élément affiché dans la liste déroulante,
    • message : message (optionnel),

      • contentText : texte brut à afficher,
      • contentHtml : texte formaté à afficher.
      • type : type de message : message (par défaut), warning, error.
    • values : objet contenant les valeurs à attribuer au document en cas de sélection de cette ligne.

      La clef représente l'identifiant logique de l'attribut auquel al valeur sera affectée, et le contenu doit être similaire à un setValue, soit un objet avec les propriétés

      • value : valeur à stocker,
      • displayValue : valeur à présenter à l'utilisateur.

5.7.4.6.3 Annulable

Oui. Dans ce cas la recherche des valeurs n'est pas effectuée sur le serveur et est à la charge du callback, qui doit alors appeler setResult.

5.7.4.6.4 Exemple

Cet exemple intercepte l'aide à la saisie de l'attribut "de_proprietaire". Aucun appel au serveur n'est effectué. Un message est affiché avec un choix unique.

window.dcp.document.documentController("addEventListener",
    "attributeHelperSearch",
    {
        "name": "displayErrorMessage",
        "documentCheck": function (documentObject)
        {
            return documentObject.family.name === "DEMANDEADOPTION"
        },
        "attributeCheck": function(attribute, documentObject) {
            return attribute.id === "de_proprietaire";
        }
    },
    function displayArrayModified(event, documentObject, attributObject, options) {
        event.preventDefault();
        options.setResult(
            [{
                "title" : "",
                "message" : {
                    "contentText" : "Hello from my autocomplete"
                }
            },
            {
                "title": "Pas le choix : c'est le propriétaire",
                "values": {
                    "de_proprietaire" : {
                        "value": 1124,
                        "displayValue" : "Le propriétaire"
                    }
                }
 
            }
            ]
        );
    }
);
×