[Constructeur] Pouvoir rendre inactive une saisie
#174
Open
opened 1 year ago by maieul
·
14 comments
No Branch/Tag Specified
constructeur_glisser_deposer
conteneur_inline
explication_simplifier_conteneur
fieldset_simplifier_conteneur
issue24_data_choix_autre
issue261_etoile_message_erreur
issue99
issue_48
master
no_submit
php8
v1
v2
v3
v1.42.11
v1.42.5
v2.0.0
v2.0.1
v2.0.2
v2.0.3
v2.0.4
v2.0.5
v2.1.0
v2.1.1
v2.1.2
v2.1.3
v2.10.0
v2.11.0
v2.11.1
v2.11.2
v2.12.0
v2.13.0
v2.14.0
v2.14.1
v2.14.2
v2.14.3
v2.14.4
v2.14.5
v2.14.6
v2.14.7
v2.14.8
v2.15.0
v2.15.1
v2.15.2
v2.16.0
v2.16.1
v2.16.2
v2.17.0
v2.17.1
v2.18.0
v2.18.1
v2.18.10
v2.18.11
v2.18.12
v2.18.13
v2.18.14
v2.18.15
v2.18.16
v2.18.17
v2.18.18
v2.18.19
v2.18.2
v2.18.20
v2.18.21
v2.18.22
v2.18.23
v2.18.24
v2.18.3
v2.18.4
v2.18.5
v2.18.6
v2.18.7
v2.18.8
v2.18.9
v2.19.0
v2.19.1
v2.19.2
v2.19.3
v2.19.4
v2.19.5
v2.19.6
v2.19.7
v2.19.8
v2.19.9
v2.2.0
v2.2.1
v2.2.2
v2.2.3
v2.20.0
v2.20.1
v2.21.0
v2.21.1
v2.21.2
v2.21.3
v2.21.4
v2.22.0
v2.23.0
v2.23.1
v2.23.2
v2.23.3
v2.23.4
v2.23.5
v2.23.6
v2.24.0
v2.24.1
v2.24.2
v2.24.3
v2.25.0
v2.25.1
v2.25.2
v2.25.3
v2.25.4
v2.26.0
v2.26.1
v2.26.10
v2.26.2
v2.26.3
v2.26.4
v2.26.5
v2.26.6
v2.26.7
v2.26.8
v2.26.9
v2.27.0
v2.28.0
v2.3.0
v2.3.1
v2.4.0
v2.5.0
v2.5.1
v2.5.10
v2.5.11
v2.5.12
v2.5.13
v2.5.14
v2.5.15
v2.5.16
v2.5.17
v2.5.18
v2.5.19
v2.5.2
v2.5.20
v2.5.21
v2.5.22
v2.5.23
v2.5.24
v2.5.25
v2.5.26
v2.5.27
v2.5.28
v2.5.29
v2.5.3
v2.5.30
v2.5.4
v2.5.5
v2.5.6
v2.5.7
v2.5.8
v2.5.9
v2.6.0
v2.6.1
v2.6.2
v2.6.3
v2.7.0
v2.7.1
v2.7.10
v2.7.11
v2.7.12
v2.7.13
v2.7.14
v2.7.2
v2.7.3
v2.7.4
v2.7.5
v2.7.6
v2.7.7
v2.7.8
v2.7.9
v2.8.0
v2.8.1
v2.9.0
v3.0.0
v3.1.0
v3.10.0
v3.10.1
v3.11.0
v3.11.1
v3.11.2
v3.12.0
v3.12.1
v3.12.2
v3.12.3
v3.12.4
v3.12.5
v3.12.6
v3.12.7
v3.13.0
v3.13.1
v3.13.2
v3.13.3
v3.13.4
v3.14.0
v3.15.0
v3.16.0
v3.16.1
v3.17.0
v3.18.0
v3.18.1
v3.18.10
v3.18.11
v3.18.12
v3.18.13
v3.18.14
v3.18.2
v3.18.3
v3.18.4
v3.18.5
v3.18.6
v3.18.7
v3.18.8
v3.18.9
v3.19.0
v3.19.1
v3.19.2
v3.19.3
v3.19.4
v3.19.5
v3.19.6
v3.2.0
v3.2.1
v3.20.0
v3.21.0
v3.21.1
v3.21.2
v3.21.3
v3.21.4
v3.22.0
v3.22.1
v3.23.0
v3.23.1
v3.23.2
v3.23.3
v3.23.4
v3.24.0
v3.25.0
v3.25.1
v3.26.0
v3.26.1
v3.27.0
v3.27.1
v3.27.2
v3.27.3
v3.27.4
v3.27.5
v3.27.6
v3.27.7
v3.28.0
v3.28.1
v3.28.10
v3.28.11
v3.28.12
v3.28.13
v3.28.14
v3.28.15
v3.28.16
v3.28.2
v3.28.3
v3.28.4
v3.28.5
v3.28.6
v3.28.7
v3.28.8
v3.28.9
v3.29.0
v3.29.1
v3.3.0
v3.3.1
v3.3.2
v3.3.3
v3.3.4
v3.30.0
v3.30.1
v3.30.2
v3.31.0
v3.31.1
v3.31.2
v3.31.3
v3.32.0
v3.36.2
v3.37.0
v3.37.1
v3.38.0
v3.38.2
v3.39.0
v3.4.0
v3.40.0
v3.40.1
v3.41.0
v3.41.3
v3.41.5
v3.41.6
v3.42.0
v3.42.1
v3.42.2
v3.42.5
v3.42.6
v3.42.7
v3.42.8
v3.43.0
v3.43.2
v3.43.3
v3.43.4
v3.43.5
v3.44.0
v3.44.1
v3.45.0
v3.45.1
v3.45.2
v3.46.0
v3.47.0
v3.47.1
v3.47.2
v3.47.3
v3.48.0
v3.48.1
v3.48.2
v3.49.0
v3.49.1
v3.5.0
v3.5.1
v3.50.0
v3.50.1
v3.50.2
v3.51.0
v3.51.1
v3.51.2
v3.51.3
v3.51.4
v3.51.5
v3.51.6
v3.51.7
v3.51.8
v3.52.0
v3.52.1
v3.52.2
v3.53.0
v3.53.1
v3.53.2
v3.53.3
v3.54.0
v3.54.1
v3.54.10
v3.54.2
v3.54.4
v3.54.6
v3.54.7
v3.54.8
v3.54.9
v3.55.0
v3.55.1
v3.55.2
v3.55.3
v3.55.4
v3.56.0
v3.56.1
v3.56.2
v3.56.3
v3.56.4
v3.56.5
v3.6.0
v3.6.1
v3.6.2
v3.6.3
v3.6.4
v3.7.0
v3.7.1
v3.7.2
v3.8.0
v3.8.1
v3.8.10
v3.8.11
v3.8.2
v3.8.3
v3.8.4
v3.8.5
v3.8.6
v3.8.7
v3.8.8
v3.8.9
v3.9.0
v3.9.1
v4.0.2
v4.0.3
v4.0.4
v4.1.0
v4.2.0
v4.2.1
v4.2.3
v4.3.0
v4.3.1
v4.3.2
v4.3.3
v4.3.4
v4.3.5
v4.3.6
v4.4.0
v4.4.1
v4.5.0
v4.5.1
v4.6.0
v4.6.1
v4.7.0
v4.7.1
No Label
amélioration
bug
doublon
help wanted
invalide
question
refusé
Milestone
Set milestone
Clear milestone
No items
No Milestone
Assignees
Assign users
Clear assignees
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
This issue currently doesn't have any dependencies.
Reference in new issue
There is no content yet.
Delete Branch '%!s(MISSING)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
On reprend le ticket commencé dans Formidable, dont la conversation est ici 👍:
spip-contrib-extensions/formidable#18
Je reprend donc, avec des idées comme cela qui me sont venues.
Parfois il arrive qu'on ne veuille plus d'un champ d'un formulaire formidable, mais qu'on veuille garder tout de même les enregistrement. Actuellement la seule solution pour ca, c'est de mettre un afficher_si
false
. Ca marche mais c'est moche, et cryptique.Ma proposition :
#GENERER_SAISIES
uniquement, ne pas generer la saisie si on est en depublie#VOIR_SAISIE
mettre une classe spécifique si depubliéeAprès avoir relu l'ancien fil :
Ah punaise, un truc comme cela qui me vient à l'esprit : est-ce que si on a le même voc + les mêmes boutons que pour les objets, il n'y aurait pas des champs qui dans ieextras basculeraient le bouton de statut en se disant "chouette, ca va me depublier automatiquement tous mes champs", et patatra non ?
du coup je dirais : il faut que ces boutons n'apparaissent dans le constructeur de formulaire que sur demande explicite.
je n'ai pas trop compris la dernière idée
une fois le concept en place, et ce serait pareil si on l'ajoutait à Menus ou Noizetier, ça doit pas être caché pour moi, une fois que le contexte est là, à tout moment on doit pouvoir désactiver/réactiver un élément de l'ensemble (désactiver un champ de form, désactiver un élément de menu, désactiver une noisette) tout en gardant sa config et en pouvant le réafficher plus tard
Bon je reprend. Je me place clairement dans un cas d'usage de "champs extra interface". J'ai mes x champs extras, avec les boutons de bascule de statut de chaque champ (rouge vs verts). Je me dit alors "tiens, chouette, je peux dépublier d'un coup la valeur du champ titi". Alors qu'en fait non. C?est juste "je peux enlever d'un coup la possibilité de remplir le champ titi".
Et donc ma dernière phrase, c'est que ce à chaque plugin qui utilisent le constructeur de formulaire de dire si oui ou non cette possibilité de "depublier" un champ est activée.
AUtre remarque concernant l'interface : je suis pas sûr que les puces rapides soient accessibles. J'ai même des gros doutes. Pour les objets spip standards, ce n'est pas grave car la méthode de base (le menu de statut) l'est, et donc les pucs c'est juste un truc en plus. Mais pour un constructeur de truc (formulaire, menu, ce que tu veux).
Du coup je m edit qu'un glissière serait le mieux, si jamais il en existe en js accessible.
Bé non les puces de statut c'est pas accessible et en plus tout riquiqui, au niveau ergonomique c'est juste un raccourci pour les personnes qui savent/arrivent à l'utiliser. Ceci dit on pourrait l'utiliser en mode statique juste pour montrer l'état avec un bouton à côté pour switcher entre les deux états… faudrait maquetter.
Pour moi cette fonctionnalité est tout autant utile pour Formidable que pour Champs Extras au niveau constructeur… Dans les champs extras aussi tu peux vouloir masquer une saisie/champ temporairement SANS rien supprimer tout ce qui a déjà été configuré (et encore moins les contenus accumulés dans la base, si on veut supprimer les contenus, on supprime le champ là ça supprime bien les contenus).
ca c'est un argument qui ne vaut plus 4 : les puces par défaut ne sont plus toutes riquiqui, et donc c'est du svg.
Cela étant l'accessibilité ca reste redibitoire.
bien sur, mais je suis persudaé que des gens penseronts que ca masque aussi le contenu deja accumulé (sans le supprimer).
genre que avec cela, #TOTO ne renverra plus rien, jusqu'au jour où pouf je remettrait le champ toto à publier
oui je pensais à un truc du genre, in fine.
t'a des otuils de maquetage simple ?
En dehors de la question ergo : je viens de voir que
saisie_afficher
fait appel àsaisie_editable()
laquelle renvoi rien si jamais la saisie$option['editable']
est à false (si inexistant renvoie). Et fait si j'ai une saisie du type-> la saisie ne s'affiche pas
DOnc en fait en terme d'API PHP on a ce qu'il faut... c'est juste en terme d'ergo que ca manque.
Par contre evidement ce qui existe actuellement dans l'API, mais documenté nul part ne répond pas à tes remarques sur "éviter de mettre à la racine" et "utiliser le même vocabulaire que les objets"...
Ah tiens je me rappelais pas de cette option, ça vient d'où à la base d'avoir eu besoin du editable saisie par saisie et non pas juste sur le form entier ? (vu que l'historique est pété dans le git difficile de remonter)
[edit]
pfiouuu j'ai réussi à remonter ! Et donc c'eeeeest… @marcimat qui a introduit ça ya DOUZE ans au tout tout début de l'API…
9fe23a1334
Je ne sais même pas si ça a vraiment été utilisé quelque part un jour…
Du coup ça pourrait possiblement être déprécié/déplacé/renommé autrement, peut-être… Si on conçoit aujourd'hui que ce serait mieux autrement.
perso je continue à penser que c'est pas idiot de mettre à la racine, ce qui ferait qu'on aurait à la racine trois choses
Autant d'information qui relève de "ce qu'on voit en première approche pour une saisie".
Quand au terme editable vs statut, l'un est plus "formulaire centré" (y compris dans le monde SPIP), l'autre est plus "objet centré", mais pour moi un champ n'est pas vraiment un objet en tant que tel (il existe difficilement de manière indépendante : autant tu peux déplacer un article d'une rubrique à l'autre, autant déplacer un champ d'un formulaire à l'autre).
Donc je me dis : pourquoi pas garder tel quel ? Ca évitera d'avoir à fouiller pour savoir si c'est depreciable ou pas.
Mais justement le caractère affiché ou pas est une option modifiable par les gens, donc ça parait artificiel de le mettre lui précisément à la racine plutôt qu'un autre.
Pour les termes, c'est justement pour ne pas avoir un truc propre à chaque utilisation. Je ne trouve pas une bonne chose du tout d'avoir un terme propre au formulaire, et ensuite on va définir un terme propre aux éléments de menus, et ensuite un 3ème terme propre aux noizettes, etc…
Alors qu'au niveau API (puisqu'en premier lieu on parle de la nomenclature des API), il s'agit rigoureusement de la même chose :