Afficher un popup dans un postUpdate

Bonjour,

Je voudrais savoir s’il était possible d’affiche un popup (avec confirmation Oui/non) dans un postUpdate ?

Exemple : si un utilisateur saisie une date au niveau de l’objet bail, lui demander s’il souhaite appliquer cette date saisie au niveau d’un autre objet B ? Si oui, je déclenche une action dans l’objet B, sinon, je ne fais rien et le postUpdate se termine normalement.

Merci d’avance pour votre aide.

Abed.

Le postUpdate comme tous les autres hooks pre/port est un traitement purement serveur donc ce n’est pas le bon endroit pour mettre de la logique UI.

Vous devez gérer ça autrement, ex: ajouter un attribut non persistant booléen à cote de votre date sur votre objet A pour indiquer si oui ou non il faut appliquer la date sur les objets B, ecrire du code JS pour poser la question via un popup avant ou après le save, etc.

Il n’y a pas de hook front pre/postSave pour faire ce genre de chose. On peut juste écraser la méthode onsave ou le click du bouton “save” par défaut pour changer le comportement du save (au niveau du onload du formulaire).

Vous pouvez aussi créer une autre action “Enregistrer et propager les dates” = une action fait un save par défaut puis appelle la méthode back qui devra faire les mises à jour en cascade que vous aviez mises dans le postSave (donc ne rien mettre mettre dans le postSave pour que le save de base ne fasse rien en cascade).

Votre besoin de hooks front sur un formulaire est à mettre au backlog V5 :

  • pre/postsave
    • pre/postcreate
    • pre/postupdate
  • pre/postdelete

il n’y a pas de hook init à prévoir, car il y a déjà le hook onload.
les “pre” devront pouvoir bloquer l’action en retournant une erreur.

En 5.2

  • le hook beforesave a été ajouté pour réaliser des pré-traitements potentiellement asynchrones avant d’appeler le save (comme appeler un service Google pour récupérer des coordonnées sur une map).
  • le hook aftersave a été ajouté pour réliser des post traitement front, après appel du back pour enregistrer l’objet et les éventuels liens présentés en pillbox
obj.locals.ui.form.beforesave = function(ctn, obj, index, cbk);
obj.locals.ui.form.aftersave = function(ctn, obj, index, msgs, cbk);

Il faut obligatoirement appeler le callback cbk pour continuer le process.
Appeler cbk(false) stoppera le process avant ou après l’appel des save en back.

Il n’est pas prévu de créer des hooks supplémentaires (comme évoqué plus haut pre/postCreate/Update) car il suffit de tester la valeur obj.isNew() dans ces 2 hooks pour savoir si on est dans un contexte de création ou non.