Le mardi 01 octobre 2019 à 17:10 +0200, nicod_ a écrit :
> Salut,
> 
> on m'a signalé un gros formulaire (74 saisies) avec plein de
> afficher_si 
> (69 conditions) qui ne marchait plus (tous les champs affichés, et
> une 
> erreur js dans la console).
> 
> Vu le nombre, pour identifier celle qui plante j'ai ajouté un 
> console.log(saisie, condition) dans afficher_si.js.html, juste avant
> le 
> eval()
> 
> J'ai donc vu que ça venait de conditions du type
> @selection_1@=="choix3" 
> && @checkbox_2@=="choix2" avec une des deux saisies qui n'existe plus 
> (parce qu'elle a été supprimée entre temps).
> 
> Ça génère donc une condition avec un && tout seul, qui plante le
> eval().
> 
> Comment pourrait on corriger ça ?
> 
> - faire de l'analyse de la condition pour supprimer un || ou && en
> trop ?
> bof, casse gueule.
> 
> - remplacer les saisies non trouvées par "1 == 1" ?
> ça serait glisser la poussière sous le tapis mais ça corrigerait
> 

Les deux solutions cachent le problème sous le tapis, donc sont à mon
avis a proscrire.


hum, compliqué tout ca.  Le problème n'est pas technique, mais
ergonomique.  La question c'est : comment prevenir qu'il y a un souci
sans que cela se voit pour tout le monde.

Je vois une solution possible : envoyer un email au webmestre signalant
le problème à chaque fois qu'il apparait lors de l'application de
afficher_si_js. 

techniquement c'est pas compliqué de vérifier l'existence d'un champ
passé en @@, mais uniquement lorsque toutes les entrées ont été definis,
donc pas lors de la construction du formulaire (sinon on aurait des faux
negatifs)

----
spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone

Répondre à