5.7.3.2 beforeClose
5.7.3.2.1 Déclenchement
Le document va être remplacé par un autre document. Soit pour un changement de rendu (passage de édition à consultation) ou un changement de document (mais pas lors de la sauvegarde ni de la suppression).
L'événement n'est pas déclenchée si l'url de la page est changée ("unload" de la page).
L'événement est déclenché par l'historique du navigateur si des changements de document ont été réalisés.
5.7.3.2.2 Éléments passés au callback
event
- objet événement standard de jQuery,
currentDocumentObject
- un objet document décrivant le document courant.
nextDocumentObject
- un objet document décrivant le document suivant.
customData
- l'objet customClientData, cet objet peut-être modifié si besoin.
5.7.3.2.3 Annulable
Oui. Dans ce cas, le document courant reste affiché et le document suivant n'est pas affiché.
5.7.3.2.4 Exemple
Cet exemple
- ajoute au ready du document (fonction
addAnimalEvents
) un écouteur sur l'événementbeforeClose
, -
l'écouteur (fonction
preventCloseAnimal
) empêche la fermeture du document si- l'attribut
zoo_title
est différent defermer
- et le mode est
edition
.
Dans ce cas, il affiche un message pour avertir l'utilisateur qu'il doit changer la valeur.
- l'attribut
window.dcp.document.documentController("addEventListener", "ready", { "name": "addAnimalEvent", "documentCheck": function(documentObject) { return documentObject.family.name === "ANIMAL"; } }, function addAnimalEvents() { this.documentController("addEventListener", "beforeClose", { "name": "preventClose.animal", "documentCheck": function(document) { return document.family.name === "ANIMAL"; } }, function preventCloseAnimal(event, currentDocumentObject) { if (currentDocumentObject.renderMode === "edit" && this.documentController("getValue", "zoo_title").value !== "fermer") { event.preventDefault(); this.documentController("showMessage", { "type" : "error", "message" : "If you want close the doc, change the title to fermer" }); } }); } );