widget reservations récurrentes : bug quand on clic sur le label (#87889) #530

Closed
nroche wants to merge 2 commits from wip/87889-recurrentes-widget-checkbox-bug into main
Owner

Sur une liste à choix multiple qui utilise la classe "template-famille-reservations-recurrentes" supplémentaires pour les styles CSS,
https://demarches-parsifal.test.entrouvert.org/backoffice/forms/67/fields/306/#open:display

quand on clic sur le label d'un item, on sélectionne/désélectionne le premier item.
cf #87834 (et #81811)

Sur une liste à choix multiple qui utilise la classe "template-famille-reservations-recurrentes" supplémentaires pour les styles CSS, https://demarches-parsifal.test.entrouvert.org/backoffice/forms/67/fields/306/#open:display quand on clic sur le label d'un item, on sélectionne/désélectionne le premier item. cf #87834 (et #81811)
nroche added 2 commits 2024-03-07 16:33:36 +01:00
Author
Owner

Le bug est lié l'attribut 'for' sur le label (si je le supprime je n'ai plus le bug),
parce que sa valeur est la même partout quand on reproduit le bug.
ex: for="f407_op_0"

L'attribut 'for' semble être copié depuis ~/src/wcs/wcs/qommon/templates/qommon/forms/widgets/checkboxes.html.
D'après #63032 :

Des lecteurs d'écran ne captent pas que l' imbriqué dans le

Ici https://dev.entrouvert.org/issues/81811#note-4,
on parle de wcs/qommon/static/js/qommon.forms.js :

Le contenu du widget est réécrit par la function Ajax "live_evaluation",
qui essaie de recréer des li > label > input[checkbox]
en ajoutant les attributs 'for' et 'id' à partir d'un string stocké dans un attribut data 'base-for-name' posé sur la ul.
Mais je n'ai pas l'impression que l'on passe dans cette fonction.
Aussi je ne sais pas tester ma correction qui ajoute un point '.' à la valeur de la classe dans ce contexte.

Enfin il y a cette autre règle, définie dans le template,
qui d'après mes tests, n'est pas impactée par la correction :

    /* check overlaps */
    $('.template-famille-reservations-recurrentes input').on('change', function() {
      if ($(this).is(':checked')) {
        $(this).parents('ul').find("input[data-overlaps~='"+$(this).data('event-id')+"']").prop('checked', false);
      }
Le bug est lié l'attribut 'for' sur le label (si je le supprime je n'ai plus le bug), parce que sa valeur est la même partout quand on reproduit le bug. `ex: for="f407_op_0"` L'attribut 'for' semble être copié depuis ~/src/wcs/wcs/qommon/templates/qommon/forms/widgets/checkboxes.html. D'après #63032 : > Des lecteurs d'écran ne captent pas que l'<input> imbriqué dans le <label> lui est lié, il faut le couple d'attributs for/id Ceci me donne un vague début d'explication sur d'où provient la sélection qui fait l'objet du ticket. Ici https://dev.entrouvert.org/issues/81811#note-4, on parle de wcs/qommon/static/js/qommon.forms.js : > Le contenu du widget est réécrit par la function Ajax "live_evaluation", > qui essaie de recréer des `li > label > input[checkbox]` > en ajoutant les attributs 'for' et 'id' à partir d'un string stocké dans un attribut data 'base-for-name' posé sur la ul. Mais je n'ai pas l'impression que l'on passe dans cette fonction. Aussi je ne sais pas tester ma correction qui ajoute un point '.' à la valeur de la classe dans ce contexte. Enfin il y a cette autre règle, définie dans le template, qui d'après mes tests, n'est pas impactée par la correction : ``` /* check overlaps */ $('.template-famille-reservations-recurrentes input').on('change', function() { if ($(this).is(':checked')) { $(this).parents('ul').find("input[data-overlaps~='"+$(this).data('event-id')+"']").prop('checked', false); } ```
Author
Owner

Je ferme : c'est traité par #529

Je ferme : c'est traité par https://git.entrouvert.org/entrouvert/publik-base-theme/pulls/529
nroche closed this pull request 2024-03-07 16:41:02 +01:00
All checks were successful
gitea/publik-base-theme/pipeline/head This commit looks good

Pull request closed

Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: entrouvert/publik-base-theme#530
No description provided.