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 ?