securedrop-client icon indicating copy to clipboard operation
securedrop-client copied to clipboard

Multi-delete/multi-select UX/UI improvements

Open rocodes opened this issue 10 months ago • 0 comments

Description

UX discussion issue: Improving multi-select/multi-delete UX based on user feedback and UX review

The initial client implementation supported the selection of only one source at a time, first to display the source conversation, and later to support operations like deletion or conversation export. Since individual source operations often involve a round-trip communication with the server (for example, to confirm deletions), working with large numbers of sources was slow and frustrating for users.

The first implementation of multi-select happened on the Guardian fork:

https://github.com/guardian/securedrop-client/pull/5

In this implementation:

  • sources can be selected for deletion by selecting their checkbox in the source list
  • selecting a checkbox does not change the active source in the conversation view
  • once one or more sources' boxes are checked, clicking the batch delete button displays a confirmation dialog allowing the user to delete all selected sources

An implementation on the FPF repo, based on the Guardian's followed:

https://github.com/freedomofpress/securedrop-client/pull/2252

It used more generic and idiomatic Qt patterns for interacting with an item list:

  • there are no checkboxes - sources can be selected as a range using shift-click or individually using ctrl-click
  • selecting multiple sources replaces the last source conversation in the conversation view with a message indicating multiple sources are selected.
  • once one or more sources are selected, clicking the batch delete button displays a confirmation dialog allowing the user to delete all selected sources

The FPF implementation added background batch deletion to speed up the overall process and reduce blocking time in the client, but it also got some negative user feedback - because selecting more sources blanked the conversation view, users could no longer just click through all recent sources in a straight pass, adding them to the selection and deleting them once done.

Future iterations on this feature should allow for a workflow where, at minimum:

  • the user selects a source entry and optionally marks it for deletion based on its submissions
  • the user can repeat the process for additional sources, viewing their conversation without clearing the previously-selected sources
  • once done, the user can delete (or perform other batch operations) on the selected sources (with confirmation for destructive operations)

rocodes avatar Mar 13 '25 14:03 rocodes