Development #41889
conserver le positionnement des boutons même si le bouton previous n'est pas affiché
0%
Description
Typiquement sur l'alignement du bouton "précedent" à gauche et les autres à droite:
$buttons-order: previous (grow), cancel, submit
sur la première page du formulaire, ou le bouton "précedent" n'existe pas, les autres sont alignés à gauche.
Il faudrait les garder à droite.
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Serghei Mihai il y a presque 4 ans
- Lié à Development #41720: thème pour le département de la Dordogne ajouté
Mis à jour par Thomas Jund (congés, retour le 29/04) il y a presque 4 ans
Dans l'état, il faudrait déconseiller de mettre l'option `(grow)` sur le bouton `previous` qui n'est pas systématiquement présent (mise à jour de la doc).
Sinon, comme propositions :
- faire en sorte que previous soit toujours présent dans le code, mais avec un attribut `disabled` dessus (et son container du coup) et masquer ou non ce bouton à l'aide d'un `display:none`. Et si option (grow) est placé dessus, mettre à la place un visibility: hidden,
- soit trouver une solution pur CSS que je n'entrevois pas encore.
Mis à jour par Frédéric Péters il y a presque 4 ans
Il me semblait que de l'autre côté il y avait un contournement qui marchait ?
Mis à jour par Thomas Jund (congés, retour le 29/04) il y a presque 4 ans
Il me semblait que de l'autre côté il y avait un contournement qui marchait ?
Dans un cas spécifique, oui. Et c'était une mauvaise idée, conseiller la modification de $buttons-alignment aurait été préférable :
Je récapitule pour flex-start et flex-end,
si l'option (grow) est placé sur le bouton previous, quand il n'est pas présent, la position des boutons qui l'entourent peuvent être modifiés
1/ l'alignement des boutons est en `flex-start`
Quand le bouton previous est en 1ère ou 2e position
previous (grow), cancel, submit
ou
cancel, previous (grow), submit
Alors le⋅s bouton⋅s placés APRÈS `previous` perdent leur positionnement à droite quand previous n'est pas présent et repassent à gauche
1/ l'alignement des boutons est en `flex-end`
Alors c'est l'inverse
Quand le bouton previous est en 2e ou 3e position
Alors le⋅s bouton⋅s placés AVANT `previous` perdent leur positionnement à gauche quand previous n'est pas présent et passent à droite.
Exemple 1. Previous position 1.
Dans le cas de la Dordogne où l'affichage doit être
previous --> cancel Submit
Il faut donc utiliser
$buttons-order: previous, cancel (grow), submit; $buttons-alignment: flex-end
ET pas
$buttons-order: previous (grow), cancel, submit; $buttons-alignment: flex-start // default
Exemple 2, previous position 2.
Dans le cas où on souhaite
cancel previous --> Submmit
Idem, La solution est d'aligner à droite et de faire un grow sur Submit
$buttons-order: cancel, previous, submit (grow); $buttons-alignment: flex-end
Après avoir détaillé tout ça, pour moi, déconseiller l'utilisation de l'option grow sur previous devrait suffire.
Par contre, que le bouton soit présent dans le code avec l'option 'visibity;:hidden' permettrait quand même de pouvoir 'conserver' l'emplacement du bouton dans d'autres configurations d'alignement (center, space-between) et rendrait les options de placement moins confus.
Mis à jour par Frédéric Péters il y a presque 4 ans
Je ne comprends toujours pas, mais c'est sans doute parce que ce ticket a été créé trop générique.
Du cas Dordogne, qui posait : $buttons-order: previous (grow), cancel, submit;
À ça on dit "dans ce cas précis il faut également poser telle ou telle option".
Et j'imaginais ce ticket comme étant mettre dans le code le "dans ce cas précis également poser telle ou telle option".
(...) déconseiller l'utilisation de l'option grow sur previous devrait suffire
En l'état elle ne produit pas, seule, un comportement convenable.
Est-ce qu'il y a des moments où elle produit un comportement qui serait souhaité ?
Si oui, mais en combinaison avec d'autres options, a-t-on de quoi les poser ?
Si non, a-t-on de quoi interdire le previous (grow) ?
Mis à jour par Thomas Jund (congés, retour le 29/04) il y a presque 4 ans
- Sujet changé de consérver l'ordre des boutons même si un des boutons n'est pas affché à conserver l'ordre des boutons même si un des boutons n'est pas affiché
Je ne comprends toujours pas
Du cas Dordogne, qui posait : $buttons-order: previous (grow), cancel, submit;
À ça on dit "dans ce cas précis il faut également poser telle ou telle option".
Moi j'ai proposé (https://dev.entrouvert.org/issues/41720#note-5), pour conserver le même design, de déplacer l'option grow sur le bouton cancel et de modifier l'alignement. Exactement l'exemple 1 présenté au dessus.
Poser un flex-grow sur un flex-child qui disparaît est en effet une mauvaise idée.
Et pour me répéter encore, de mon point de vue :
- Soit on garde le code en l'état qui permet toutes les possibilités de layout mais on ne permet plus (on déconseille) l'utilisation de l'option grow sur previous. Ce qui oblige l'intégrateur à jouer avec les options d'alignement un peu plus souvent. Et on peu en effet éviter d'appliquer un flex-grow sur previous
- Soit une solution du coté du code HTML : ne pas supprimer 'previous' du code. Qui a largement ma préférence.
Mis à jour par Thomas Jund (congés, retour le 29/04) il y a plus de 2 ans
- Tracker changé de Support à Bug
- Sujet changé de conserver l'ordre des boutons même si un des boutons n'est pas affiché à conserver le positionnement des boutons même si le bouton previous n'est pas affiché
- Statut changé de Nouveau à En cours
- Assigné à mis à Thomas Jund (congés, retour le 29/04)
re-tombé sur la fonction index() de sass sur la doc qui permet de récupérer l'index et repenser à cette problématique
1.
@if (index($buttons-order, previous grow)) { @error("$buttons-order : #{$buttons-order} / grow option is not allowed for previous button"); }
Avec ça on peut interdire la pose de l'option grow sur le bouton previous. Mais l'analyse de l'existant m'a permis de dégager 2 contournements possibles en récupérant l'index du bouton previous
$previous-is-grow: index($buttons-order, previous grow);
Si `$previous-is-grow 1` alors un `justify-content: flex-end` fait le job
et si `$previous-is-grow 2` il faut alors un `justify-content: space-between`.
Mis à jour par Thomas Jund (congés, retour le 29/04) il y a plus de 2 ans
- Fichier 0001-scss-keep-correct-buttons-order-value-when-previous-.patch 0001-scss-keep-correct-buttons-order-value-when-previous-.patch ajouté
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Nicolas Roche il y a environ 2 ans
Pour moi c'est bon, mais je trouve ça compliqué à tester (je sais pas comment déboguer du code scss).
Et surtout très spécifique.
Je pense comme toi qu'une solution du coté du code HTML serait plus adaptée.
Mis à jour par Thomas Jund (congés, retour le 29/04) il y a environ 2 ans
je sais pas comment déboguer du code scss
Dans le code SCSS tu peux poser des `@debug()`: https://sass-lang.com/documentation/at-rules/debug
Je pense comme toi qu'une solution du coté du code HTML serait plus adaptée.
N'hésite pas à proposer un patch côté WCS :)
Mis à jour par Robot Gitea il y a environ un an
- Assigné à changé de Thomas Jund (congés, retour le 29/04) à Corentin Séchet
Corentin Sechet (csechet) a ouvert une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/publik-base-theme/pulls/196
- Titre : scss: keep correct $buttons-order value when previous button is missing (#41889)
- Modifications : https://git.entrouvert.org/entrouvert/publik-base-theme/pulls/196/files
Mis à jour par Robot Gitea il y a environ un an
- 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 Corentin Séchet il y a environ un an
- Projet changé de Intégrations graphiques Publik à w.c.s.
Mis à jour par Robot Gitea il y a environ un an
- Statut changé de Solution validée à Solution proposée
Corentin Sechet (csechet) a ouvert une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/wcs/pulls/163
- Titre : forms: add hidden previous button on first form page (#41889)
- Modifications : https://git.entrouvert.org/entrouvert/wcs/pulls/163/files
Mis à jour par Robot Gitea il y a environ un an
- Statut changé de Solution proposée à En cours
Frédéric Péters (fpeters) a relu et demandé des modifications sur une pull request sur Gitea concernant cette demande :
Mis à jour par Robot Gitea il y a 12 mois
- Tracker changé de Bug à Development
- Statut changé de En cours à Solution proposée
Mis à jour par Robot Gitea il y a 12 mois
- Statut changé de Solution proposée à Solution validée
Frédéric Péters (fpeters) a approuvé une pull request sur Gitea concernant cette demande :
Mis à jour par Robot Gitea il y a 12 mois
- Statut changé de Solution validée à Résolu (à déployer)
Frédéric Péters (fpeters) a mergé une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/wcs/pulls/163
- Titre : forms: add hidden previous button on first form page (#41889)
- Modifications : https://git.entrouvert.org/entrouvert/wcs/pulls/163/files
Mis à jour par Transition automatique il y a 12 mois
- Statut changé de Résolu (à déployer) à Solution déployée
forms: add hidden previous button on first form page (#41889)