I was asked for an option to configure the order of the group inboxes in the sidebar section that my component adds. Now I am looking for an elegant solution that allows an administrator to configure the order as easily as possible.
I was thinking of a very simple object type setting. Each entry would contain a single group selector (via the groups setting type), which is much easier than entering names or IDs manually. The items could then be reordered using the up/down arrows.
This is what I had in mind:
But in reality, it looks more like this:
The group dropdown itself works fine. Although the setting stores the group ID, admins see the group’s name in the dropdown, so selecting the correct one is easy. However, when I use the group value as the identifier for the object entry, the UI displays only the group ID, not the group name. This makes changing the order difficult, because admins would have to rely on IDs instead of names.
(Also, there is a large amount of space on the right, but “groups” still breaks strangely.)
setting.yml
group_inbox_order:
type: objects
default: []
schema:
name: entry
identifier: group
properties:
group:
type: groups
required: true
max: 1
In the video above, I added an additional text setting for each entry where I entered the group name manually and used that as the identifier. But that doesn’t feel like a good solution, because the displayed text is no longer tied to the actual group, and group names may change.
setting.yml
group_inbox_order:
type: objects
default: []
schema:
name: entry
identifier: text
properties:
group:
type: groups
required: true
max: 1
text:
type: string
I could also use a list setting of “group” type, but it is very difficult to reorder items there, since you can only delete and re-add them.
Does anyone have any ideas on how I can best solve this?

