PréBarrages: les changements de couleur du schéma ne sont pas instantanées
Lorsqu'on a un élément de pré-barrage incomplet ou invalide (voir #501 (closed)), l'élément correspondant dans le schéma ne change pas de couleur instantanément.
C'est un bug connu lors de la mise en place de la fonctionnalité #484 (closed) de coloration des éléments du pré-barrage. Cette fonctionnalité redessine le schéma à chaque changement d'affichage de nub via la sélection d'un nub sur le schéma.
Mettre à jour le schéma instantanément nécessite de redessiner le schéma à chaque cycle de vérification de la saisie par Angular. Cela paraît rédhibitoire car cela ralentirait énormément l'application et pourrait aussi entraîner une perte de focus du champ en cours de saisie (cf. #469 (closed)).
Il y a une possibilité pour gérer plus proprement le changement de couleur sans redessiner le schéma à chaque fois:
- le schéma est un SVG intégré dans la page, il fait donc parti du DOM et la mise en forme est gérée par des CSS.
- les boites affichées correspondent à ce genre de code:
<g class="node wall node-error" style="opacity: 1; cursor: pointer;" id="c3Zpb2" transform="translate(256.15415954589844,116.5)">
<rect rx="0" ry="0" x="-44.85832977294922" y="-19.5" width="89.71665954589844" height="39" class="label-container">
</rect>
<g class="label" transform="translate(0,0)">
<g transform="translate(-34.85832977294922,-9.5)">
<foreignObject width="69.71665954589844" height="19">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
Amont-B2
</div>
</foreignObject>
</g>
</g>
</g>
- La balise qui englobe tout a un identifiant qui correspond à l'identifiant du nub enfant en question et son apparence est gérée par la propriété "class". Dans l'exemple ci-dessus, on a la classe "node-error" qui détermine la mise en couleur rouge du nub.
En modifiant le DOM, juste en cherchant la balise "g" ayant l'identifiant "`id_du_nub`" (ici "c3Zpb2") et en enlevant ou ajoutant "node-error" à la propriété "class", on mettrait à jour le schéma juste en y modifiant ce qu'il faut.