5.7.6 Liste des événements de changement d'état
Les événements ci-dessous concernent le changement d'état du document. Ils permettent de piloter la fenêtre de changement d'état.
La fenêtre de changement d'état est représentée dans les événements par l'objet interne correspondant.
Les écouteurs de ces événements doivent être ajoutés au widget document.
5.7.6.1 beforeDisplayTransition
5.7.6.1.1 Déclenchement
Cet événement est déclenché avant l'affichage de la fenêtre de changement d'état.
5.7.6.1.2 Éléments passés au callback
event
- objet événement standard de jQuery,
documentObject
- un objet document décrivant le document courant.
changeStateObject
- objet transition décrivant la fenêtre de transition.
5.7.6.1.3 Annulable
Oui. Dans ce cas, la demande de transition est annulée.
5.7.6.1.4 Exemple
Cet exemple interdit les changement d'état administrateur (sans transition).
window.dcp.document.documentController("addEventListener", "beforeDisplayTransition", { "name": "preventTransition.changeState" }, function preventTransition(event, documentObject, changeStateObject) { if (!changeStateObject.transition) { event.preventDefault(); this.documentController("showMessage", { type : "error", "message" : "You cannot do change state without transition" }); } } );
5.7.6.2 afterDisplayTransition
5.7.6.2.1 Déclenchement
Cet événement est déclenché après l'affichage de la fenêtre.
5.7.6.2.2 Éléments passés au callback
event
- objet événement standard de jQuery,
documentObject
- un objet document décrivant le document courant.
changeStateObject
- objet transition décrivant la fenêtre de transition.
5.7.6.2.3 Annulable
Non.
5.7.6.2.4 Exemple
Cet exemple affiche un message de confirmation au clic sur le bouton de validation
et empêche l'action associée au bouton ok
de ce lancer si l'utilisateur ne confirme pas.
window.dcp.document.documentController("addEventListener", "afterDisplayTransition", { "name": "afterDisplayTransition.changeState" }, function afterDisplayTransition(event, documentObject, changeStateObject) { changeStateObject.$el.find(".dcpTransition-button-ok") .on("click", function displayConfirm(event) { if (!confirm("Are you sure ?")) { changeStateObject.close(); event.preventDefault(); return false; } }); } );
5.7.6.3 beforeTransitionClose
5.7.6.3.1 Déclenchement
Cet événement est déclenché avant la fermeture de la fenêtre lorsque l'utilisateur a cliqué sur "fermer" ou s'il a confirmé la transition.
Dans le cas d'une transition confirmé, la requếte a déjà été exécutée.
5.7.6.3.2 Éléments passés au callback
event
- objet événement standard de jQuery,
documentObject
- un objet document décrivant le document courant.
changeStateObject
- objet transition décrivant la fenêtre de transition.
5.7.6.3.3 Annulable
Oui. La fenêtre reste ouverte.
5.7.6.3.4 Exemple
Cet exemple affiche un message de confirmation au clic sur le bouton d'annulation et annule la fermeture si ce n'est pas confirmé.
window.dcp.document.documentController("addEventListener", "beforeTransitionClose", { "name": "beforeTransitionClose.changeState" }, function beforeTransitionClose(event, documentObject, changeStateObject) { if (!confirm("Are you sure ?")) { event.preventDefault(); } } );
5.7.6.4 beforeTransition
5.7.6.4.1 Déclenchement
Cet événement est déclenché avant l'envoi de l'ordre de changement d'étape.
5.7.6.4.2 Éléments passés au callback
event
- objet événement standard de jQuery,
documentObject
- un objet document décrivant le document courant.
changeStateObject
- objet transition décrivant la fenêtre de transition.
5.7.6.4.3 Annulable
Oui. La fenêtre reste ouverte mais la requête n'est pas envoyée.
5.7.6.4.4 Exemple
Cet exemple affiche un message de confirmation au clic sur le bouton de confirmation et laisse la fenêtre ouverte si ce n'est pas confirmé.
window.dcp.document.documentController("addEventListener", "beforeTransition", { "name": "beforeTransition.changeState" }, function beforeTransition(event, document, transition) { if (!confirm("Are you sure ?")) { event.preventDefault(); } } );
5.7.6.5 failTransition
5.7.6.5.1 Déclenchement
Cet événement est déclenché après le retour de la demande de changement d'état si celle-ci échoue.
5.7.6.5.2 Éléments passés au callback
event
- objet événement standard de jQuery,
documentObject
- un objet document décrivant le document courant.
changeStateObject
- objet transition décrivant la fenêtre de transition.
message
-
objet décrivant le message d'errer. L'objet contient les propriétés suivantes :
title
- titre du message,
errorCode
-
code d'erreur du message. Les plus courants sont :
-
offline
: requête impossible pour cause de réseau, -
CRUD0211
: un attribut n'est pas au bon format et n'a pas pu être sauvé, -
CRUD0212
: une contrainte n'est pas respectée.
Les autres identifiants d'erreurs peuvent être trouvés dans la documentation de l'API HTTP.
-
message
- contenu textuel du message,
-
htmlMessage
(optionnel) - contenu html du message.
5.7.6.5.3 Annulable
Non.
5.7.6.5.4 Exemple
Cet exemple ferme la fenêtre de changement d'état et ouvre le document en édition en affichant l'erreur à l'utilisateur si le changement d'état échoue (uniquement dans le cas d'une erreur autre que réseau).
window.dcp.document.documentController("addEventListener", "failTransition", { "name": "failTransition" }, function failTransition(event, documentObject, changeStateObject, error) { if (error.type !== "offline") { changeStateObject.close(); this.documentController("showMessage", { "type" : "error", "title" : error.title || "erreur", "message" : error.htmlMessage || error.message }); this).documentController("fetchDocument", { "initid": documentObject.initid, "viewId" : "!defaultEdition" }); } } );
5.7.6.6 successTransition
5.7.6.6.1 Déclenchement
Cet événement est déclenché après le retour de la demande de changement d'état si celle-ci a réussi.
5.7.6.6.2 Éléments passés au callback
event
- objet événement standard de jQuery,
documentObject
- un objet document décrivant le document courant.
changeStateObject
- objet transition décrivant la fenêtre de transition.
5.7.6.6.3 Annulable
Non.
5.7.6.6.4 Exemple
Cet exemple affiche un message à l'utilisateur en cas de transition effectuée avec succès.
window.dcp.document.documentController("addEventListener", "successTransition", { "name": "successTransition" }, function successTransition(event, documentObject, changeStateObject) { this.documentController("showMessage", { "type" : "info", "message" : "Well done !" }); } );