Confirmation avant création

Bonjour, je souhaiterais savoir s’il est possible d’intégrer une étape de confirmation dans un contexte de Création ?

Le but serait d’avoir une popup de ce type :

image

au moment d’appuyer sur le bouton “Save”.

Ma première piste était de cacher le bouton save, créer une action de type formulaire avec la confirmation activé, et déclencher un validateAndCreate() au “click”.

Cependant, les actions ne semblent pas s’afficher dans un contexte de création.

Merci d’avance pour votre aide.

Benoît

Technical information

Instance /health

[Platform]
Status=OK
Version=5.2.28
BuiltOn=2023-01-20 16:41
Git=5.2/863cfad4c8c21998884a167b5f88de0c00e7d44d
Encoding=UTF-8
EndpointIP=10.144.56.62
EndpointURL=http://mla-api-fd4576bf5-p6ddj:8080
TimeZone=Europe/Paris
SystemDate=2023-02-16 16:37:14

[Application]
ApplicationVersion=0.10
ContextPath=
ContextURL=https://app-mlasdb.gke.dev.gcp.renault.com
ActiveSessions=1
TotalUsers=5
EnabledUsers=2
LastLoginDate=2023-02-16 16:15:01

[Server]
ServerInfo=Apache Tomcat/9.0.71
ServerType=WEB
ServerActiveSessions=1
ServerSessionTimeout=30

[OS]
Name=Linux
Architecture=amd64
Version=5.10.147+
DockerImageName=centos7
SystemEncoding=UTF-8

[JavaVM]
Version=17.0.6
Vendor=Eclipse Adoptium
VMName=OpenJDK 64-Bit Server VM
VMVersion=17.0.6+10
ScriptEngine=rhino
ScriptEngineVersion=Rhino 1.7.13 2020 09 02
HeapFree=505285
HeapSize=806912
HeapMaxSize=7131136
TotalFreeSize=6829509

[Cache]
ObjectCache=403
ObjectCacheMax=10000
ObjectCacheRatio=4
ProcessCache=14
ProcessCacheMax=10000
ProcessCacheRatio=0
APIGrantCache=0
APIGrantCacheMax=1000
APIGrantRatio=0

[Database]
Vendor=3
ProductName=PostgreSQL
ProductVersion=11.16
DriverName=PostgreSQL JDBC Driver
DriverVersion=42.5.1
DBDate=2023-02-16 16:37:14
DBDateOffset=0
DBPatchLevel=5;P02;51e36da51a79b8c1941bdc15bd63f2b0
UsingBLOBs=true

[Healthcheck]
Date=2023-02-16 16:37:14
ElapsedTime=20

Bonjour Benoit,

Tu peux cacher le bouton “Créer” de la liste et en utiliser un custom qui crée un record dans un état Brouillon et affiche le formulaire de celui que tu viens de créer.
Il faudra ensuite cliquer sur un bouton pour valider ou non la création de ce record.
A l’état Brouillon il serait peut-être judicieux de masquer le bouton “Fermer” aussi et de le remplacer par un bouton custom qui supprime le record si le formulaire n’a pas été validé pour création.

Peut-être une cron aussi qui supprime les records qui n’ont pas été validés depuis un certain temps (à définir)

Merci pour ta réponse @Alistair.

Le problème c’est que cela demande de créer un record :

  • si l’objet à beaucoup d’attributs obligatoires, ils seront donc préremplis à l’affichage du formulaire, cela risque d’embrouiller les utilisateurs
  • si des traitements se basent sur le nombres de record et/ou les valeurs des attributs obligatoires, cela risque de fausser les résultats

Ce type de demande revient assez régulièrement dans le cas de création de record “sensible”.

Penses tu que ce type de demande pourrais être intégrer de façon native dans une future évolution et de ce fait basculer le post en “Feature request” ?

Tu peux toujours rendre les champs obligatoires uniquement si le statut est différent de Brouillon.

C’est pour ça qu’il faut s’assurer que le record est supprimé si la validation de création n’est pas faite. Tu peux aussi conditionner tes calculs pour exclure tous les records au statut Brouillon.

Quant à la feature request, on va en disputer en interne.

Super merci @Alistair.

En l’état, cela fait beaucoup d’actions pour une simple popup de confirmation avant création.

Je vais voir s’il y a moyen d’adapter le besoin, en attendant une éventuelle “Feature request”.

Bonjour,

Je passe le besoin en feature request pour ouvrir le débat.

  • L’action “Créer” est déjà une proposition de création, qui ne crée rien, ouvre un formulaire de création avec N champs obligatoires à remplir, et qui seront confirmés par le bouton “Enregistrer”.
  • Demander si l’utilisateur veut finalement “créer” au “save” après un tel parcours me semble inutile. L’utilisateur est tout à fait conscient de créer quelque chose à cette étape.
  • Là où un popup de confirmation peut avoir du sens c’est au moment du 1er click sur le bouton “Créer” / avant d’accéder au formulaire de création.

Au niveau du runtime, le bouton de création n’est pas une Action au sens du paramétrage Simplicité, c’est juste un affichage UI lié à un droit et une option “créer depuis la liste”. Pour le rendre paramétrable, il faudrait pouvoir

  • créer et habiliter une Action “Créer” qui remplace le bouton natif
  • L’Action pourrait alors avoir du code front, une confirmation avec un libellé spécifique, des champs à renseigner pour préparer le formulaire de création… bref être une Action

Ce besoin a du sens dans un cas plus général si on introduit une nouvelle notion sur l’Action Simplicité pour remplacer ce que fait l’action de base :

  • Extend = Create | Delete | Save&Close | Close…
  • charge à l’implémentation de l’action de remplacer le handler par défaut
  • ou si l’action n’a pas de code, appeler le handler natif

En attendant, pour répondre au besoin à court terme, il faut faire comme @Alistair propose mais sans créer de record vide = remplacer le bouton “Créer” sur la liste (décocher la case sur la définition de l’objet) avec une Action de confirmation dont le code ne fera qu’ouvrir le formulaire de création (displayForm avec un rowId = “0”).

2 Likes

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.