[MGNLUI-4333] Re-enable select all checkbox in Pulse Created: 04/Dec/17 Updated: 16/Sep/21 Resolved: 19/Jan/18 |
|
| Status: | Closed |
| Project: | Magnolia UI |
| Component/s: | None |
| Affects Version/s: | 5.6 |
| Fix Version/s: | 5.6.2 |
| Type: | Task | Priority: | Major |
| Reporter: | Federico Grilli | Assignee: | Federico Grilli |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | regression, ux | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
||||||||||||||||
| Issue Links: |
|
||||||||||||||||
| Template: |
|
||||||||||||||||
| Acceptance criteria: |
Empty
|
||||||||||||||||
| Task DoR: |
Empty
|
||||||||||||||||
| Release notes required: |
Yes
|
||||||||||||||||
| Documentation update required: |
Yes
|
||||||||||||||||
| Date of First Response: | |||||||||||||||||
| Sprint: | Basel 129, Basel 130 | ||||||||||||||||
| Story Points: | 8 | ||||||||||||||||
| Description |
|
Selecting all rows in Pulse has been disabled when upgrading to Vaadin 8. Reason is that, due to the nature of Vaadin's AbstractBackEndDataProvider we use there, all rows would be put in memory if we were to enable the select all checkbox, which would cause severe performance issues with a large enough dataset. Some ideas to tackle this:
and
—
The advantage of all this would be that (in probably 99% of cases) users would keep on using a familiar and effective UX pattern. |
| Comments |
| Comment by Federico Grilli [ 09/Jan/18 ] |
|
"Remove all messages" only solves part of the problem. Bulk actions also involve claiming, aborting and archiving tasks. I tried to reintroduce a "Select all" button and then programmatically set all items as selected (see select-all.m4v If we're fine with the "Remove all" option we need to decide what this means for tasks (archive?). Also this would involve exposing new ad hoc methods for Task/MessageStore and Task/MessageManager which would efficiently remove/archive all messages/tasks for a given user w/o first fetching all items in memory. See example of UX interaction clear-all.m4v |
| Comment by Federico Grilli [ 10/Jan/18 ] |
|
Another option would be to have an action dropdown preceded by an "apply to: " dropdown with options like "selection", "all". See attached screenshots |
| Comment by Federico Grilli [ 14/Jan/18 ] |
|
After implementing the action dropdown option above and looking closer at how data are retrieved, I think this is more of a theoretical issue than an actual one. Besides, after trying the new UX patten, imho, it feels clunky. Regarding performance: messages and tasks are usually filtered by type so, when dataProvider.fetch(..) is invoked, only a subset of data is loaded in memory.
The advantage of all this, imo, would be that (in probably 99% of cases) users would keep on using a familiar and effective UX pattern. UPDATE |