Feature #15768
closedSupport multi-select operations
Description
Want to be able to perform certain operations over multiple items in project panel.
- Each item in the project listing should have a checkbox (or similar UI element) to toggle selection.
- "Select All" action to check all visible items (filtering by type and keyword affects what is selected)
- "Deselect all" action -- clear all selections
- "Invert selection" -- swap visible selected/unselected
- Refreshing the list or changing the filtering should keep all visible selections, if something that was selected is now hidden, it should be de-selected
- Paging forwards/backwards clears selections (because previous selections are no longer visible)
- When multiple items are selected, context/action menus change to only offer actions that apply to all selected items (the the label for the action should make it clear it applies to all selected)
- Initial actions to support:
- Trash selected
- Move selected
- Copy selected -- only enabled if only "copyable" items are selected, maybe start with collections only
- The move/copy operations should pop up a dialog box for the user to select a target project
- The move/copy operations need to handle name collisions -- if there's already an object at the target destination with the same name, it will be an error
- I'm not sure what we want to do, possible options are skip, rename, or replace
- Initial behavior should probably be to "skip"
Files
Related issues
Updated by Tom Morris about 5 years ago
- Has duplicate Feature #15693: Support group operations on filtered list added
Updated by Tom Morris almost 5 years ago
- Target version changed from To Be Groomed to Arvados Future Sprints
- Story points set to 2.0
Updated by Peter Amstutz almost 5 years ago
- Target version changed from Arvados Future Sprints to To Be Groomed
- Story points deleted (
2.0)
UX comment: when there are multiple selections, the existing right click and hamburger menu should display only the options that can be applied to all the selections, and should indicate it will operate on multiple selected items.
Updated by Peter Amstutz almost 5 years ago
- Release set to 20
- Target version deleted (
To Be Groomed)
Updated by Lucas Di Pentima almost 5 years ago
- Related to Idea #15333: Workbench2 feature parity with Workbench added
Updated by Lucas Di Pentima almost 5 years ago
- Blocks Feature #16057: Combine selected collections added
Updated by Peter Amstutz over 3 years ago
- Related to Idea #16943: WB2 Descriptions, project & collection operations added
Updated by Peter Amstutz over 3 years ago
- Related to deleted (Idea #15333: Workbench2 feature parity with Workbench)
Updated by Peter Amstutz over 2 years ago
- Release deleted (
31) - Category set to Workbench2
- Project changed from Arvados Workbench 2 to Arvados
Updated by Peter Amstutz over 2 years ago
- Target version set to 2022-06-08 sprint
- Subject changed from [Workbench 2] Support multi-select operations to Support multi-select operations
Updated by Peter Amstutz over 2 years ago
- Target version changed from 2022-06-08 sprint to 2022-06-22 Sprint
Updated by Peter Amstutz over 2 years ago
- Target version changed from 2022-06-22 Sprint to 2022-06-08 sprint
Updated by Peter Amstutz over 2 years ago
- Target version changed from 2022-06-08 sprint to 2022-06-22 Sprint
Updated by Lucas Di Pentima over 2 years ago
If we're going to need to support bulk operations from the client side, maybe there'll be a need to create some UI element to hint the user the progress of those operations.
Updated by Peter Amstutz over 2 years ago
- Target version changed from 2022-06-22 Sprint to 2022-07-20
Updated by Peter Amstutz over 2 years ago
- Target version changed from 2022-07-20 to 2022-08-03 Sprint
Updated by Peter Amstutz over 2 years ago
- Target version changed from 2022-08-03 Sprint to 2022-09-28 sprint
Updated by Peter Amstutz about 2 years ago
- Target version changed from 2022-09-28 sprint to 2022-10-12 sprint
Updated by Peter Amstutz about 2 years ago
- Target version changed from 2022-10-12 sprint to 2022-10-26 sprint
Updated by Peter Amstutz about 2 years ago
- Target version changed from 2022-10-26 sprint to 2022-11-09 sprint
Updated by Peter Amstutz about 2 years ago
- Target version changed from 2022-11-09 sprint to 2022-11-23 sprint
Updated by Peter Amstutz about 2 years ago
- Target version changed from 2022-11-23 sprint to 2022-12-07 Sprint
Updated by Peter Amstutz almost 2 years ago
- Target version changed from 2022-12-07 Sprint to 2022-12-21 Sprint
Updated by Peter Amstutz almost 2 years ago
- Target version changed from 2022-12-21 Sprint to 2023-01-18 sprint
Updated by Peter Amstutz almost 2 years ago
- Target version changed from 2023-01-18 sprint to 2023-02-01 sprint
Updated by Peter Amstutz almost 2 years ago
- Target version changed from 2023-02-01 sprint to Future
Updated by Peter Amstutz over 1 year ago
- Has duplicate Feature #18193: Multi-select collections and projects to delete them added
Updated by Peter Amstutz over 1 year ago
- Target version changed from Future to Development 2023-04-26 sprint
- Assigned To set to Lisa Knox
Updated by Peter Amstutz over 1 year ago
- Related to Feature #20375: Multi-select operations on the process list page added
Updated by Peter Amstutz over 1 year ago
- Status changed from New to In Progress
Updated by Peter Amstutz over 1 year ago
- Target version changed from Development 2023-04-26 sprint to Development 2023-05-10 sprint
Updated by Peter Amstutz over 1 year ago
- Target version changed from Development 2023-05-10 sprint to Development 2023-05-24 sprint
Updated by Peter Amstutz over 1 year ago
- Target version changed from Development 2023-05-24 sprint to Development 2023-06-07
Updated by Peter Amstutz over 1 year ago
- Blocked by Bug #20538: Unhandled exception when trying to delete a process that you don't have write permission added
Updated by Peter Amstutz over 1 year ago
- Target version changed from Development 2023-06-07 to Development 2023-06-21 sprint
Updated by Peter Amstutz over 1 year ago
- Target version changed from Development 2023-06-21 sprint to Development 2023-07-05 sprint
Updated by Peter Amstutz over 1 year ago
- Target version changed from Development 2023-07-05 sprint to Development 2023-07-19 sprint
Updated by Peter Amstutz over 1 year ago
- Target version changed from Development 2023-07-19 sprint to Development 2023-08-02 sprint
Updated by Peter Amstutz over 1 year ago
- Target version changed from Development 2023-08-02 sprint to Development 2023-08-16
Updated by Peter Amstutz about 1 year ago
- Target version changed from Development 2023-08-16 to Development 2023-08-30
Updated by Peter Amstutz about 1 year ago
- Target version changed from Development 2023-08-30 to Development 2023-09-13 sprint
Updated by Peter Amstutz about 1 year ago
- Target version changed from Development 2023-09-13 sprint to Development 2023-09-27 sprint
Updated by Lisa Knox about 1 year ago
15768-multi-select-operations @ commit: bdcaea37455b72c345c7305e6a7bc4ba63d5c1b7
developer-tests-workbench2: #1348
- All agreed upon points are implemented / addressed.
- done - Anything not implemented (discovered or discussed during work) has a follow-up story.
- N/A - Code is tested and passing, both automated and manual, what manual testing was done is described
- manual testing included all described operations done repeatedly on all resource types - Documentation has been updated.
- N/A - Behaves appropriately at the intended scale (describe intended scale).
- testing was done with nearly a hundred items, and while slowdown was noted, wb2 remained responsive - Considered backwards and forwards compatibility issues between client and server.
- all communications between client and server use existing functionality and asynchronous effects are properly handled - Follows our coding standards and GUI style guidelines.
-done
Updated by Peter Amstutz about 1 year ago
- Target version changed from Development 2023-09-27 sprint to Development 2023-10-11 sprint
Updated by Peter Amstutz about 1 year ago
- Related to Bug #20764: Copy-to-Clipboard snackbar doesn't show up when copied from context menu added
Updated by Stephen Smith about 1 year ago
Here are some things I noticed:
- It would be good to add confirmation dialogs to delete for collections and projects, similar to the process delete context menu
- The hover ripple effect on the toolbar items is squished instead of circular, you could probably move some of the margin into padding (to allow the ripple effect to take up more space since it can use padding space inside each button but can't use space in margin outside the button) could help fix that. You could also potentially get creative with negative margins if necessary
- It seems there's some extraneous arguments to waitForDom on line 1014 of the collection spec
- The verifyIOParameterImage is commented out of the process spec, that check should be passing to verify that inline image previews work - I'm guessing this is because of the arvados change from localhost to 127.0.0.1 - there is a fix for that in main that switches the integration tests to also load from 127.0.0.1 to fix cors issues so merging main into your branch should let you uncomment that again
- In the search spec, the federated item copy to clipboard and open in new tab should use the federated WB2 url instead of the local WB2 instance url - this should be working in main so possibly there was some cause of breakage that was fixed in main, merging main into your branch might also fix this too
- In data table multiselect popover, there's some commented out code in submit - I think we typically try to remove commented out stuff unless there's a reason it needs to stick around. Also, does the submit function serve a purpose since it seems to be empty otherwise?
- I noticed backend 422 errors are being suppressed globally in the index.tsx error handler - I think it would be better to catch the error in your action with a try/catch so that 422 errors elsewhere in the application can still show a toast. I think the rationale behind that is so that errors that are handled or are displayed in a user friendly way can choose to hide the nasty raw error while unexpected errors in code that doesn't have error handling will still show the toast by default
- I've been thinking about the strategy of converting all context menu actions to handle resource arrays even though all the existing actions are designed for single items - it seems weird to foreach the array of resources for something like the share or edit options which if given multiple resources would try to open the same dialog multiple times. I think the main issue is it gives the appearance that it can handle multiple items. I don't want to create a bunch of work, but assuming you didn't make those actions handle multiple items, I think at least indexing the first item for actions and scrapping the loop for existing context menu items would make it clearer that those actions only work for single items. I think a nicer implementation would be to have a separate execute function or a separate type for context menu multiple item actions where the execute function has a resource array type signature, but that could be a lot more work so I don't think it's necessary (a better solution could be done when actual multiple item support is added to regular context menu items)
- I'm curious about the change to the navigation handler to accept the any type and whether it's being used somewhere with an indexable type - I think it's nice to have the string type constraint vs any, and if there's somewhere that passes in an array maybe that side could be changed to index the uuid out of the array so that navigateTo can keep its typed param, wdyt?
Updated by Lisa Knox about 1 year ago
It would be good to add confirmation dialogs to delete for collections and projects, similar to the process delete context menu
- Behavior on this branch is the same as on main, so I think adding confirmation dialogs should go on another ticket
The hover ripple effect on the toolbar items...
- fixed
It seems there's some extraneous arguments...
- fixed
The verifyIOParameterImage is commented out of the process spec...
- switched it back, hopefully the fixes on main will address
In the search spec, the federated item copy to clipboard...
- restored to previous
In data table multiselect popover...
- Removed entirely. Meant to do it before, but missed it in my cleanup
I noticed backend 422 errors are being suppressed globally...
- restored global 422 handling and implemented the intended handling changes closer to where they are thrown
I've been thinking about the strategy...
- You're absolutely right and those changes have been made.
I'm curious about the change to the navigation handler...
- This was actually changed so that I could test something and I forgot to change it back :)
Currently waiting for CI changes to complete to bounce back for review
Updated by Peter Amstutz about 1 year ago
- Target version changed from Development 2023-10-11 sprint to Development 2023-10-25 sprint
Updated by Lisa Knox about 1 year ago
- File 15768passingtests.png 15768passingtests.png added
Main is merged into local branch, integration tests all pass locally, unable to attach Jenkins run due to unrelated issues with Jenkins.
ref a4257a0f91ce403f09c01a89e982e5e336a0f033
screenshot of passing tests attached in lieu of Jenkins tests
Updated by Stephen Smith about 1 year ago
Just a few more cleanup tasks but it lgtm once that's done
- There's a duplicate
renames a file to a different directory
cypress test in collection.spec.js that probably just got duplicated during merge resolution - There's a stray console.log in renderers.tsx L524
- It looks like the
ContextMenuResource
type has an unusedisMulti
field that I think can be removed - For removing the for loops for actions that are for single items, these places still have single item open-dialog actions that are applied in a loop and probably should also be changed to indexing off the first element:
- api-client-authorization-action-set
- group-action-set, group-member-action-set
- keep-service-action-set
- link-action-set
- repository-action-set
- root-project-action-set
- ssh-key-action-set
- user-action-set
- virtual-machine-action-set
- and the
Api Details
action in search-results-action-set / trashed-collection-action-set
Updated by Lisa Knox about 1 year ago
There's a duplicate
renames a file to a different directory
cypress test in collection.spec.js that probably just got duplicated during merge resolution
- removed
There's a stray console.log in renderers.tsx L524
- removed
It looks like the
ContextMenuResource
type has an unusedisMulti
field that I think can be removed
- That is used by the toggleProjectTrashed function to determine whether or not to navigate to the restored item UUID after restoration. Originally it was supposed to do more, but this is its only function now.
edit: renamed isSingle to avoid confusion with isMulti
For removing the for loops...
- removed all
Updated by Anonymous about 1 year ago
- Status changed from In Progress to Resolved
Applied in changeset arvados-workbench2|3eda00155a3d816c7e65632c7da9896ffb04faae.