spip-contrib-extensions/coche_mots
Par Glop, le 27 novembre 2024 à 12h39min :
fix: cibler les bons blocs Ajax à recharger
Lorsque le formulaire de sélection de mots-clés par Coche Mots est
ouvert dans une boîte modale, la validation effectue un ajaxReload()
pour mettre à jour les blocs Ajax du formulaire
.formulaire_editer_liens-mots.
Cependant, l’événement ajaxReload est envoyé à la balise principale
du formulaire, mais pas aux blocs Ajax qu’il contient. Par conséquent,
l’événement remonte dans l’arborescence du DOM et force un ajaxReload
sur le bloc Ajax parent (#contenu), qui recharge donc tout le contenu
principal de la page, et pas seulement les blocs nécessaires.
On peut le voir par exemple en regardant les requêtes que le navigateur
effectue lorsqu’on valide le formulaire de Coche Mots, ou par le fait
que valider le formulaire de Coche Mots referme tous les autres
formulaires dépliés sur la page, comme le formulaire d’ajout
d’auteurices, par exemple.
La modification ici permet d’envoyer le ajaxReload uniquement aux
blocs Ajax qu’il faut effectivement recharger (c’est-à-dire ceux qui
sont contenus dans le formulaire .formulaire_editer_liens-mots).
Cela permet en particulier de résoudre le bug qui fait que tout le
formulaire d’ajout de mots-clés se ferme à chaque fois que l’on valide
le formulaire de Coche Mots.
Modifié
prive/squelettes/contenu/coche_mots.html