forms: allow clicking back to any previous page (#11249) #1115
Loading…
Reference in New Issue
No description provided.
Delete Branch "wip/11249-go-to-any-old-page"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
7a01cd4b5c
tod47fd9f199
d47fd9f199
to9921239650
9921239650
to425db06e85
WIP: forms: allow clicking back to any previous page (#11249)to forms: allow clicking back to any previous page (#11249)@ -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
Si dans l'
<input type=hidden>
il y a une valeur, on prend cette page comme destination.et si ça donne une liste vide, par exemple parce que previous_page_id n'est un id de page qui existe ?
Ça fallback sur la première page; j'ai complété le test pour valider ça :
cec8cc729d
@ -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
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'))
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'))
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"
Avec le js plus haut, ces attributs assurent normalement tout le nécessaire pour l'accessibilité au clavier.
cec8cc729d
toeeb27cbc4d
eeb27cbc4d
tod217937dce