Projet

Général

Profil

Development #41889

conserver le positionnement des boutons même si le bouton previous n'est pas affiché

Ajouté par Serghei Mihai il y a presque 4 ans. Mis à jour il y a 12 mois.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
20 avril 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Lié à Intégrations graphiques Publik - Development #41720: thème pour le département de la DordogneFermé14 avril 2020

Actions

Révisions associées

Révision eac0955f (diff)
Ajouté par Corentin Séchet il y a 12 mois

forms: add hidden previous button on first form page (#41889)

Historique

#1

Mis à jour par Serghei Mihai il y a presque 4 ans

#2

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.
#3

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 ?

#4

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.

#5

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) ?

#6

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.
#7

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`.

#8

Mis à jour par Thomas Jund (congés, retour le 29/04) il y a plus de 2 ans

#9

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.

#10

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 :)

#11

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 :

#12

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 :

#13

Mis à jour par Corentin Séchet il y a environ un an

  • Projet changé de Intégrations graphiques Publik à w.c.s.
#14

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 :

#15

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 :

#16

Mis à jour par Robot Gitea il y a 12 mois

  • Tracker changé de Bug à Development
  • Statut changé de En cours à Solution proposée
#17

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 :

#18

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 :

#19

Mis à jour par Transition automatique il y a 12 mois

  • Statut changé de Résolu (à déployer) à Solution déployée
#20

Mis à jour par Transition automatique il y a 10 mois

Automatic expiration

Formats disponibles : Atom PDF