Serait-il possible d’ajouter une contrainte de visibilité sur un attribut d’action (non persistant) en fonction d’un autre attribut d’action (non persistant) ?
Exemple, Dans l’action suivante, je souhaite afficher le 2ième attribut (texte à saisir) uniquement si l’utilisateur choisi “Oui” :
Les contraintes s’appliquent aux objets, pas aux actions dont les champs sont en général de simples compléments obligatoires ou facultatifs de l’action sans logique métier particulière.
On peut surcharger les champs via le hook initAction en back avant affichage.
@Override
public void initAction(Action action) {
ObjectField f = action.getConfirmField(getGrant().getLang(), "myFieldName");
f.setDefaultValue("aValue");
f.setRequired(true);
}
En front, pour ajouter du code dynamique dans ce formulaire, il faut ajouter du code javascript dans le champ UI template HTML de l’onglet confirmation de l’action qui permet avant tout de positionner les champs autrement que les uns en dessous des autres, mettre des zones de texte, etc.
Exemple myField2 visible si myField1 vaut abc, affichage en 2 colonnes :