Configuration de l'ordre des groupes dans les paramètres du composant de thème

On m’a demandé une option pour configurer l’ordre des boîtes de réception de groupe dans la section de la barre latérale que mon composant ajoute. Je recherche maintenant une solution élégante qui permette à un administrateur de configurer l’ordre le plus facilement possible.

J’avais pensé à un paramètre de type objet très simple. Chaque entrée contiendrait un seul sélecteur de groupe (via le type de paramètre groups), ce qui est beaucoup plus facile que de saisir manuellement des noms ou des identifiants. Les éléments pourraient ensuite être réorganisés à l’aide des flèches haut/bas.

Voici ce que j’avais en tête :


Mais en réalité, cela ressemble davantage à ceci :

Le menu déroulant de groupe lui-même fonctionne bien. Bien que le paramètre stocke l’ID du groupe, les administrateurs voient le nom du groupe dans le menu déroulant, il est donc facile de sélectionner le bon. Cependant, lorsque j’utilise la valeur group comme identifiant pour l’entrée de l’objet, l’interface utilisateur n’affiche que l’ID du groupe, et non le nom du groupe. Cela rend difficile la modification de l’ordre, car les administrateurs devraient se fier aux identifiants plutôt qu’aux noms.
(De plus, il y a beaucoup d’espace à droite, mais « groups » se coupe toujours de manière étrange.)

setting.yml
group_inbox_order:
  type: objects
  default: []
  schema:
    name: entry
    identifier: group
    properties:
      group:
        type: groups
        required: true
        max: 1

Dans la vidéo ci-dessus, j’ai ajouté un paramètre de texte supplémentaire pour chaque entrée où j’ai saisi manuellement le nom du groupe et l’ai utilisé comme identifiant. Mais cela ne semble pas être une bonne solution, car le texte affiché n’est plus lié au groupe réel, et les noms de groupe peuvent changer.

setting.yml
group_inbox_order:
  type: objects
  default: []
  schema:
    name: entry
    identifier: text
    properties:
      group:
        type: groups
        required: true
        max: 1
      text:
        type: string

Je pourrais également utiliser un paramètre de type liste de type « group », mais il est très difficile de réorganiser les éléments là-bas, car on ne peut que les supprimer et les rajouter.

Quelqu’un a-t-il des idées sur la meilleure façon de résoudre ce problème ?

4 « J'aime »

Ma solution actuelle est que j’ai transformé le champ inutile pour entrer le nom en une fonctionnalité.

Cela ne résout pas vraiment le problème, car cela n’a de sens que dans les cas où l’administrateur souhaite saisir un nom d’affichage personnalisé pour le groupe. Sinon, ils ajoutent toujours des noms uniquement pour pouvoir réorganiser les groupes tout en voyant leurs noms et doivent supprimer les noms par la suite.

Le paramètre d’objet affichant le nom du groupe en fonction des valeurs du menu déroulant des groupes serait toujours la meilleure solution.

3 « J'aime »