Open herveheritier opened 3 years ago
Le recalcul du formulaire a déjà été implanté pour prendre en compte le champ onchange
d'une variable. Quand page.js
détecte un changement de valeur, il émet un message variableChangePropagation
qui va déclencher la fonction skeleton.resolveParametricOptions
puis en retour le message afterVariableChanged
est renvoyé à page.js
qui recalcul le formulaire.
Donc pour répondre au besoin, il faut 1) ajouter dans le dictionnaire la possibilité d'ajouter une condition qui va dépendre d'autres variables et 2) ajouter dans page.js
le contrôle de la condition quand elle est présente. Attention à ne pas implanter de eval mais bien un contrôle basé sur déclaration d'une instance de fonction ; un truc du genre let result = Function("use strict";return (${condition})
)()
Ce serait pratique de pouvoir conditionner le caractère optionnel d'une variable ou d'un groupe en fonction de la valeur d'une autre variable.
C'est déjà faisable en utilisant la directive
if
dans le squelette, mais ça serait un vrai plus si on pouvait ne pas voir dans le formulaire les variables pour lesquelles les conditions ne sont pas remplies... et qu'elles n'apparaissent que quand les conditions sont remplies ; ça veut dire que le formulaire doit être "recalculé" à chaque fois qu'une variable qui participe à ces conditions est modifiée.Pas facile mais certainement utile ; ça permet de ne pas surcharger le formulaire, on ne voit que ce qui est nécessaire et de comprendre qu'il y a des dépendances entre les variables sans aller voir le code du squelette.