Bug #80921
affichage dynamique champ cassé suite à modif envoi événement wcs:change
0%
Description
js: fix fields prefilled with geocoding not triggering live update (#80858)
est le commit qui casse l'affichage dynamique de champs, qu'on rencontre dans #80920.
Vraisemblablement, ce qui était transmis en params :
$(this).parents('form').trigger('wcs:change', params);
ne l'est plus en faisant :
form.dispatchEvent(new Event('wcs:change', params))
(le contenu de params m'apparait ok).
Il y a peut-être une analyse à porter qui redescendrait de #80858 vers #78997, reprendre celui-ci je ne sais comment pour revenir à des événements jquery, et trouver une manière de faire différente pour s'interfacer dans l'évaluation live des champs, ou décréter que tant pis on garde le bug #78997 pour le moment. Ça me semblerait préférable à la chute actuelle.
Révisions associées
Historique
Mis à jour par Robot Gitea il y a 8 mois
- Statut changé de Nouveau à Solution proposée
Corentin Sechet (csechet) a ouvert une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/wcs/pulls/644
- Titre : js: fix dynamic fields update (#80921)
- Modifications : https://git.entrouvert.org/entrouvert/wcs/pulls/644/files
Mis à jour par Corentin Séchet il y a 8 mois
J'ai été un peu vite en besogne dans #80858 : Il ne s'agissait pas d'un .addEventListener(...) qui n'attrapait pas un évènement lancé par un .trigger(...), mais un évènement lancé par un .dispatchEvent(...) qui n'était pas attrapé par un gestionnaire jQuery déclaré via :
$(parent).on('change input', '.child-selector', () => ... // $(child) == .child-selector)
Aucune idée de pourquoi, puisque :
$(parent)('.child-selector').on('change', () => ... // $(child) == .child-selector)
Fonctionne bien lorsqu'on émet un évènement via dispatchEvent. Donc en plus de repasser à du jQuery pour le trigger('wcs-change'), je suis repassé à .on pour le change sur les inputs : il y a des .trigger('change') par endroits, ça avait du casser d'autres choses.
A cause de la magie noire faite par jQuery par dessus la gestion d’évènements JS native, au moment où on a introduit du JS Vanilla pour l'évaluation live, on a commencé à tirer des fils dans toute la gestion d’évènements : on a utilisé des .addEventListener(...), qui demandent de migrer des .trigger(...) en .dispatchEvent(...), qui demandent à leur tour de migrer des .on(..) vers .addEventListener(...), etc. etc.
Mis à jour par Robot Gitea il y a 8 mois
- Statut changé de Solution proposée à Solution validée
Serghei Mihai (smihai) a approuvé une pull request sur Gitea concernant cette demande :
Mis à jour par Robot Gitea il y a 8 mois
- Statut changé de Solution validée à Résolu (à déployer)
Corentin Sechet (csechet) a mergé une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/wcs/pulls/644
- Titre : js: fix dynamic fields update (#80921)
- Modifications : https://git.entrouvert.org/entrouvert/wcs/pulls/644/files
Mis à jour par Transition automatique il y a 8 mois
- Statut changé de Résolu (à déployer) à Solution déployée
js: fix dynamic fields update (#80921)