j’ai mis un Message.formatWarning dans un preValidate.
1er pb lors de la création par formulaire :
quand j’enregistre, le message ne s’affiche pas
quand j’enregistre et ferme, le message s’affiche
si je modifie l’élément créé et que j’enregistre, le message s’affiche.
2ème pb lors de la création par “Modifier la liste” puis “Ajouter une ligne”
le message ne s’affiche jamais.
Effectivement les info/warning ne remontaient pas sur la UI lors d’une création.
Il y a un booby trap avec la méthode obj.validate() qui par défaut ne ramène que les Errors ou les Fatals. Dans la couche Ajax/Json, il fallait utiliser obj.validate(false) pour tout récupérer en back (infos et warnings)… ce que faisait l’update depuis des années.
si je mets : msgs.add(Message.formatError(“Alerte”, “La date de début de session est inférieure à la date de début de la commande”, “fopSessionDtDebut”));
j’ai le message d’erreur
si je mets : msgs.add(Message.formatWarning(“Alerte”, “La date de début de session est inférieure à la date de début de la commande”, “fopSessionDtDebut”));
je n’ai aucun message et l’enregistrement se fait
J’ai compris c’est sur une liste panel/fille en upsert sans erreur (sur une liste main ça fonctionne).
Ce cas n’a pas été géré, car quand on enregistre la liste fille sans erreur ça recharge tout le formulaire, et on perd alors ce que le panel avait renvoyé au niveau de chaque ligne. (En cas d’erreur, seule la liste fille se recharge avec les erreurs par ligne)
Il va falloir faire évoluer la UI pour qu’elle affiche les info/warn résiduels après rechargement du formulaire (nécessaire par exemple pour afficher un champ calculé en fonction de la liste fille).
Comme il ne sera plus possible de positionner les messages par ligne (puisque rien ne dit que la ligne créée sera dans un panel visible, paginée…), les messages “résiduels” seront groupés dans un dialogue d’info au rechargement du formulaire parent. Exemple :
Effectivement c’est une erreur liée à un back portage d’une évolution pour un autre projet pour retourner un “redirect:url” lors d’un “postDelete”.
C’est corrigé.
Ca correspond à des commits d’aujourd’hui qui ont été poussés à l’instant sur les templates d’instances.
Ce sera donc normalemen récupéré cette nuit sur vos SIMs.
Mais pour anticiper cette récupération auto il est toujours possible de faire un sim refresh manuel