Feature #21448
closedReorder and group context menu/toolbar
Description
Currently the context menu / toolbar is sorted alphabetically in some cases. I think this was done because it is combined from several other menu fragments which are enabled or disabled depending on the user's access. In other cases it doesn't seem to be sorting the options at all -- I think we get menus with the read only and writable options concatenated.
However, the result is that the options are not in any logical order. The options should be grouped by what they do and ordered on an approximate frequency of use, with spacers between groups. There's also instances of inconsistent ordering between the menus and the toolbar.
E.g. the current menu for a Process is
Add to favorites
API Details
Copy and re-run process
Edit Process
Move to
Open in new tab
Outputs
Remove
Share
View Details
I think these options can be put into conceptual groups "get more information", "perform an operation", and "toggle state".
Possible ordering for the process menu¶
View details
Open in new tab
Outputs
API details
---
Edit process
Copy and re-run process
Move to
Remove
---
Add to favorites
Add to public favorites
Possible ordering for the project and collection menu¶
View details
Open in new tab
Copy to clipboard
Open with 3rd party client
API details
---
New project
Edit project
Share
Move to
Remove
---
Freeze project
Add to favorites
Add to public favorites
Possible ordering for the registered workflow menu¶
View details
Open in new tab
Copy to clipboard
API details
---
Run workflow
Remove
Other edits¶
Processes have an option to "Share", but that doesn't actually work. That should be removed.
For processes, consider only showing "Edit process" on processes in "Draft" state.
For processes, I think we should consider removing the "Move to" option for the time being because it doesn't completely do what you want (it moves exactly that one process, but it doesn't move any of the child processes, outputs or logs).
"Copy to clipboard" should be "Copy link to clipboard"
We could consider striking "Outputs" as a menu option. There's other ways to get to it.
Implementation¶
Perhaps we could have a master list that has every possible option (independently of what it operates on) and the grouping. When building the toolbar or menu for any particular instance (which varies based on the thing selected and the user's level of access) it consults the master list to get a group and relative position for every item. This way, the order is consistent everywhere, and changes to ordering or grouping are reflected anywhere those items appear.
Related issues