Projet

Général

Profil

Development #49585

Changer facilement l'ordre des pages d'un formulaire

Ajouté par Brice Mallet il y a plus de 3 ans. Mis à jour il y a environ 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
17 décembre 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Si on souhaite reprendre un formulaire dans Publik, on peut se retrouver à devoir ré-organiser le formulaire en modifiant l'ordre des pages, ce qui n'est pas rapide (et potentiellement source d'erreurs) car il faut alors drag-and-drop le champ "Page" mais aussi tous les champs à l'intérieur de celui-ci. Un moyen qui permettrait de déplacer le champ avec les champs de cette page serait parfait.
Ceci pourrait être de la forme d'une option comme ce fut ajouté pour la suppression :

Vous allez supprimer la page « Parents ». Supprimer tous les champs de la page ❏

Un autre mode de traitement qui me plairait bien :
  • un mode d'affichage "sommaire" qui n'afficherait que les seuls champs pages
    • on basculerait dans ce mode d'affichage via un bouton en tête de formulaire tel "Limiter l'affichage aux pages"
  • dans ce mode d'affichage, le drag-and-drop d'un champ page entraînerait avec lui tous les champs à l'intérieur de la page

Fichiers


Demandes liées

Lié à w.c.s. - Development #1686: Le drag & drop d'un champ page devrait déplacer aussi tous ses filsFermé19 septembre 2012

Actions

Révisions associées

Révision 67abf4f3 (diff)
Ajouté par Lauréline Guérin il y a environ 3 ans

admin: option to move fields when a page is moved (#49585)

Historique

#2

Mis à jour par Frédéric Péters il y a plus de 3 ans

  • Lié à Development #1686: Le drag & drop d'un champ page devrait déplacer aussi tous ses fils ajouté
#3

Mis à jour par Lauréline Guérin il y a environ 3 ans

  • Assigné à mis à Lauréline Guérin
#4

Mis à jour par Lauréline Guérin il y a environ 3 ans

vu avec Fred: pas de mode sommaire, on déplace la page et ses champs tout le temps

#6

Mis à jour par Frédéric Péters il y a environ 3 ans

Oui j'imagine bien des moments pénibles mais comme je n'arrivais pas concrètement à capter le moment "page mal placée" je me suis dit qu'on verrait à l'usage.

L'usage que j'avais c'était sur du debug, utiliser une page pour petit à petit réduire le nombre de champs affichés sur la précédente.

Je ne suis pas favorable à l'improvisation d'un mode "sommaire", et on fait quand même assez bien sans déplacement de page (cf #1686).

#7

Mis à jour par Marie Kuntz il y a environ 3 ans

Je ne vais pas me battre mais je pressens que ça va être plus pénible que ça ne va apporter en confort. Je le pose là pour pouvoir dire "told you so" dans quelques semaines ;)

#8

Mis à jour par Frédéric Péters il y a environ 3 ans

De mon côté j'ai laissé #1686 de côté depuis 8 ans pour éviter ce "told you so"...

Mais à réfléchir une proposition de comportement pour avancer, ça devient un peu plus compliqué mais ça serait après avoir déplacé une page avoir un bandeau pas gênant avec dedans la possibilité de cliquer sur un "déplacer également les champs", un peu comme on a sur la multi-sélection dans les tableaux de traitement "Exécuter l’action choisie sur toutes les pages".

Dans la pratique technique je verrais ça ainsi : modifier la vue update_order pour retourner du json et dedans, quelque chose comme

{"success": "ok",
 "additional-action": {
    "message": "Déplacer également les champs de la page ?",
    "url": ".../update_order?fields=1,2,3&page=5" 
 }
}

et le js créerait un <div> avec ça; pour info à ce sujet ma capture d'écran le code donnait ça :

<div style="position: absolute;z-index: 10000;top: 33px; left: 20px;background: white;padding: 5px 1rem;border: 1px solid #666;border-radius: 5px;">
  <a href="..." style="width: auto;display: inline;" class="">Déplacer également les champs de la page</a>
  <a style="display: inline;margin-left: 1em;text-decoration: none;border: none;" class="">×</a>
</div>

+ le js pour que le faire de l'ajax sur le premier <a> (ou même on peut se dire que dans ce cas il vaut peut-être mieux un vrai clic avec vrai affichage de page, plutôt qu'avoir à également gérer le déplacement des champs dessous).

+ le js pour supprimer le <div> au clic sur la croix.

#9

Mis à jour par Marie Kuntz il y a environ 3 ans

Ca me paraît bien, est-ce que les autres CPF ont un avis là-dessus ?

#10

Mis à jour par Marie Kuntz il y a environ 3 ans

J'ajoute que l'idée du sommaire me paraît non seulement sympa, mais aussi trèèèès utile pour les longs formulaires (type APA, FLS etc), idée à conserver dans un coin

#11

Mis à jour par Lauréline Guérin il y a environ 3 ans

première itération:
- j'ai choisi de refresh la page après le déplacement des champs, plutôt que de le gérer en JS
- j'ai volontairement pas géré le js et les css de la popup qui propose de déplacer les champs: à la place j'ai posé une modale moche, et je demanderai de l'aide pour améliorer ça si le reste est validé

#12

Mis à jour par Thomas Jund il y a environ 3 ans

Proposition qui a l'avantage de demander peu de JS. Ça fait le job.
Est-ce le rafraîchissement est juste pour replacer les champs ?
Si on garde cette idée je vais essayé d'améliorer un peu le layout de la modale.

Autre proposition :
On pourrait aussi proposer une 2e icône à côté de l'actuelle pour les pages uniquement qui permettrait de déplacer directement la page et les champs, sans avoir besoin d'une 2e action via modale.
Ça demande plus de JS mais donne une information graphique sur cette nouvelle action, où il suffit d'amender la légende du dessus pour l'expliquer.

#13

Mis à jour par Thomas Jund il y a environ 3 ans

Voilà mes modifs apportées au code de Laureline

  • création d'une class CSS modificateur 'oneline-dialog' pour jqueryUI dialog permettant de positionner le bouton close à gauche du contenu.
  • petite refacto du JS pour instancier le widget dialog une seule fois au chargement de la page plutôt qu'à chaque déplacement.
  • ajout d'une transition sur la couleur de l'ombre pour un meilleur feedback visuel à l'ouverture de la modal.
#15

Mis à jour par Lauréline Guérin il y a environ 3 ans

Merci Thomas :)

#16

Mis à jour par Frédéric Péters il y a environ 3 ans

Ok ne pas oublier de faire passer le 0001 de Thomas dans gadjo.

Je retirerais le point d'interogation puisque cliquer sur le lien va faire l'action.

#17

Mis à jour par Lauréline Guérin il y a environ 3 ans

intégration du patch de Thomas + suppression du point d'interrogation

#18

Mis à jour par Frédéric Péters il y a environ 3 ans

  • Statut changé de Solution proposée à Solution validée
#19

Mis à jour par Lauréline Guérin il y a environ 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 67abf4f379c9544ce0d5376c56650f1c1299ffb3
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Thu Jan 7 14:42:01 2021 +0100

    admin: option to move fields when a page is moved (#49585)

patch gadjo intégré également

#20

Mis à jour par Frédéric Péters il y a environ 3 ans

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

Formats disponibles : Atom PDF