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.
Updated by Peter Amstutz 10 months ago
- Target version changed from Development 2024-02-28 sprint to Development 2024-03-13 sprint
Updated by Peter Amstutz 10 months ago
- Target version changed from Development 2024-03-13 sprint to Development 2024-03-27 sprint
Updated by Peter Amstutz 10 months ago
- Target version changed from Development 2024-03-27 sprint to Development 2024-04-10 sprint
Updated by Peter Amstutz 9 months ago
- Target version changed from Development 2024-04-10 sprint to Development 2024-03-27 sprint
- Assigned To set to Lisa Knox
Updated by Peter Amstutz 9 months ago
Some of this work is happening in #21224 so I'm putting in on the sprint to reflect the actual work being done.
Updated by Peter Amstutz 9 months ago
- Target version changed from Development 2024-03-27 sprint to Development 2024-04-10 sprint
Updated by Lisa Knox 9 months ago
21448-menu-reorder @ commit: 857687c280c2a84152de6e8df840d0bcf1282bcf
developer-run-tests-services-workbench2: #654
- ✅ All agreed upon points are implemented / addressed.
- "Share" button removed from processes
- "Copy to clipboard" changed to "Copy ink to clipboard" in all menus
- ✅ Anything not implemented (discovered or discussed during work) has a follow-up story.
- "Edit process" kept as-is per discussion
- "Move to" removed for processes and workflows
- "Outputs" kept with a follow-up: https://dev.arvados.org/issues/21642
- ✅ Code is tested and passing, both automated and manual, what manual testing was done is described
- Manually tested by opening menus in a variety of places and trying all menu options
- ✅ Documentation has been updated.
n/a - ✅ Behaves appropriately at the intended scale (describe intended scale).
n/a - ✅ Considered backwards and forwards compatibility issues between client and server.
n/a - ✅ Follows our coding standards and GUI style guidelines.
- instead of the master order list, I opted for individual orderings that can be set declaratively in menu-item-sort.ts, including setting where the list dividers appear. Any resource that does not have an order currently defaults to alphabetical, but that can be easily changed. This allows for super-easy changes and menu customization in the future, if we choose to pursue that.
- I also took the opportunity to change all menu "name" fields from hardcoded strings to constants. Previously, these fields only had one use so it didn't matter, but now they are used and referenced in several places so they need to be type safe
Updated by Peter Amstutz 9 months ago
This is really good, couple notes:
- Based on feedback, let' have "Share" always be the first item in the 2nd group.
- If you select a single collection, the icons on the second group are [Move, Copy, Trash] but if you select two collections the order changes to [Copy, Move, Trash]. It should be [Copy, Move, Trash] both places for consistency.
- There's a little bit of a flicker when the toolbar appears. I'd prefer it show up all at once.
- When the menu overflows, the vertical dividers seem to display whether or not there are items to separate, they are displayed as vertical in the menu, and also become clickable (but they don't do anything). Ideally these should render properly, but if that's complicated I think I'd be okay if the separators just don't show up in the overflow menu.
Updated by Lisa Knox 9 months ago
developer-run-tests-services-workbench2: #670
21448-menu-reorder @ commit: 6e82c6703a8caabcf5ed96b7bd0338e60a2b6619
Based on feedback, let' have "Share" always be the first item in the 2nd group.
done
If you select a single collection, the icons on the second group...
Added a default sort order for when more than one items are selected. This will have to change if/when we expand multiselect functionality.
There's a little bit of a flicker when the toolbar appears...
There was a css width transition originally, now removed.
When the menu overflows, the vertical dividers seem...
I fixed the display of non-overflowed dividers and opted to just remove dividers from the overflow menu itself.
Updated by Peter Amstutz 9 months ago
Lisa Knox wrote in #note-14:
There's a little bit of a flicker when the toolbar appears...
There was a css width transition originally, now removed.
I still see a brief flicker to blank when selecting a different kind of thing that has different toolbar items, but it is less distracting than the transition before.
LGTM
Updated by Peter Amstutz 9 months ago
Also I noticed issues with toolbar/multi-select in the Groups panel and added a follow-up ticket: #21648
Updated by Peter Amstutz 9 months ago
- Related to Bug #21648: Group list, group members, and permissions have multi-select check boxes but no multi-select operations added
Updated by Anonymous 9 months ago
- Status changed from In Progress to Resolved
Applied in changeset arvados|44c8f9ed561513b607d3eca752ad3e1efd376f56.