Nous avons réussi à faire la contrainte front du tuto, mais celle-ci repose sur une value en String.
Pouvez-vous nous indiquer qu’elle valeur renseigner pour l’impact svp.
Normalement une condition liée à un attribut de type booléen devrait marcher, si ce n’est pas le cas c’est une anomalie.
Mais bon, est-ce que le pb n’est pas plutôt qu’il manque la logique inverse ?
En effet là tu écris juste si EXISTE est vrai alors TEXTE est obligatoire mais tu ne gère pas le sinon
Moi je mettrais donc plutôt true dans la condition et Tool.isTrue([VALUE:EXISTE]) dans l’impact. Ce qui revient à dire TEXTE est obligatoire en fonction de la valeur de EXISTE.
PS: je sais bien que c’est un test ici mais je ne valide pas ce genre de nommages mono-mot (EXISTE ou TEXTE), on a un partenaire qui est encore tombé dernièrement sur un obscur mot clé réservé SQL non standard en utilisant des nommages de ce genre (on empêche les mots réservés SQL99)
Il y avait bien en bug d’affichage sur le UIField.required qui ne changeait pas bien la classe du form-group. Par contre au niveau de la contrainte front, un champ boolean vaut bien true / false.
on peut faire une fonction auto-appelante front pour debugger son expression, exemple :
(function() {
var v = obj.getField("x").getValue(); // or [VALUE:x]
console.log("val=" + v);
debugger; // force to stop here !
return !!v; // ensure to convert null or "" to false
})()
Si votre objet contient trop de contraintes front, il est plutôt conseillé de directement scripter des “change” dans le hook front form.onload.
Et ne pas oublier de mettre les contraintes de type champ obligatoire ou modifiable en back ou dans les hooks validate de l’objet.
Car en cas d’appels API ou Ajax les contraintes front ne s’appliqueront pas.