forms: allow clicking back to any previous page (#11249) #1115

Merged
fpeters merged 1 commits from wip/11249-go-to-any-old-page into main 2024-03-15 07:32:48 +01:00
Owner
No description provided.
fpeters added 1 commit 2024-02-08 19:44:58 +01:00
gitea/wcs/pipeline/head There was a failure building this commit Details
7a01cd4b5c
forms: allow clicking back to any previous page (#11249)
fpeters force-pushed wip/11249-go-to-any-old-page from 7a01cd4b5c to d47fd9f199 2024-02-16 14:22:43 +01:00 Compare
fpeters force-pushed wip/11249-go-to-any-old-page from d47fd9f199 to 9921239650 2024-02-16 14:33:28 +01:00 Compare
fpeters force-pushed wip/11249-go-to-any-old-page from 9921239650 to 425db06e85 2024-02-16 14:40:51 +01:00 Compare
fpeters changed title from WIP: forms: allow clicking back to any previous page (#11249) to forms: allow clicking back to any previous page (#11249) 2024-02-16 14:55:06 +01:00
fpeters reviewed 2024-02-16 15:01:20 +01:00
@ -1589,0 +1591,4 @@
previous_page_id = get_request().form.get('previous-page-id')
if previous_page_id:
new_page_no, previous_page = [
x for x in enumerate(self.pages[:page_no]) if x[1].id == previous_page_id
Author
Owner

Si dans l'<input type=hidden> il y a une valeur, on prend cette page comme destination.

Si dans l'`<input type=hidden>` il y a une valeur, on prend cette page comme destination.
Owner

et si ça donne une liste vide, par exemple parce que previous_page_id n'est un id de page qui existe ?

et si ça donne une liste vide, par exemple parce que previous_page_id n'est un id de page qui existe ?
Author
Owner

Ça fallback sur la première page; j'ai complété le test pour valider ça : cec8cc729d

Ça fallback sur la première page; j'ai complété le test pour valider ça : https://git.entrouvert.org/entrouvert/wcs/commit/cec8cc729d850d0a62df9b969e0b54f8b925051f
@ -1080,0 +1080,4 @@
document.addEventListener('DOMContentLoaded', function(){
const previous_page_id_input = document.querySelector('[name="previous-page-id"]')
if (!previous_page_id_input) return
Author
Owner

S'il n'y a pas l'<input type=hidden> on ne fait rien, ça permettrait d'ajouter un feature flag pour désactiver ça, mais pour le moment ça me va de faire ça sans feature flag.

S'il n'y a pas l'`<input type=hidden>` on ne fait rien, ça permettrait d'ajouter un feature flag pour désactiver ça, mais pour le moment ça me va de faire ça sans feature flag.
@ -1080,0 +1086,4 @@
if (e.key !== "Enter" && e.key !== " ") return
e.preventDefault()
previous_page_id_input.value = step.dataset.pageId
document.querySelector('button[name="previous"]').dispatchEvent(new MouseEvent('click'))
Author
Owner

Pour la navigation au clavier, s'il y a enter ou un espace on remplit l'<input type=hidden> et on "click" sur le bouton précédent.

Pour la navigation au clavier, s'il y a enter ou un espace on remplit l'`<input type=hidden>` et on "click" sur le bouton précédent.
@ -1080,0 +1090,4 @@
})
step.addEventListener('click', function() {
previous_page_id_input.value = step.dataset.pageId
document.querySelector('button[name="previous"]').dispatchEvent(new MouseEvent('click'))
Author
Owner

Même chose sur un clic.

Même chose sur un clic.
@ -21,0 +21,4 @@
{% if forloop.counter < current_page_no %}
aria-label="{% blocktrans with page_label=page_label %}Go back to step: {{ page_label }}{% endblocktrans %}"
role="button"
tabindex="0"
Author
Owner

Avec le js plus haut, ces attributs assurent normalement tout le nécessaire pour l'accessibilité au clavier.

Avec le js plus haut, ces attributs assurent normalement tout le nécessaire pour l'accessibilité au clavier.
fpeters force-pushed wip/11249-go-to-any-old-page from cec8cc729d to eeb27cbc4d 2024-02-16 16:39:04 +01:00 Compare
lguerin approved these changes 2024-02-16 16:43:22 +01:00
fpeters force-pushed wip/11249-go-to-any-old-page from eeb27cbc4d to d217937dce 2024-03-15 07:19:31 +01:00 Compare
fpeters merged commit 8598a77b4e into main 2024-03-15 07:32:48 +01:00
fpeters deleted branch wip/11249-go-to-any-old-page 2024-03-15 07:32:48 +01:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 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/wcs#1115
No description provided.