Story #9587

[Workbench] Interface to list and untrash trashed collections

Added by Brett Smith 11 months ago. Updated 4 days ago.

Status:In ProgressStart date:07/12/2016
Priority:NormalDue date:
Assignee:Radhika Chippada% Done:

33%

Category:-
Target version:2017-06-07 sprint
Story points2.0Remaining (hours)0.00 hour
Velocity based estimate-

Description

Use case: Provide a simple interface for users to review what collections are trashed, and undelete them if desired.

Implementation:

- Add a /trash index page that lists collections with is_trashed=true.

- Display columns: checkbox, Name (with a link to object name / uuid), Contents (similar to /collections page), Trashed at (when it was trashed at), Created at, Un-delete button

- Selection drop down has one item to "un-delete" the selected items in the checkbox

- Search box

- Infinite scrolling (rather than paging - desirable)


Subtasks

Task #11564: Review branch 9587-include-trash-in-group-contentsResolvedLucas Di Pentima

Task #11750: Rollback API server updates from 9587-include-trash-in-gr...NewRadhika Chippada

Task #11749: ReviewNewLucas Di Pentima


Related issues

Related to Arvados - Story #9278: [Crunch2] Document/fix handling of collections with non-n... In Progress 06/01/2016

Associated revisions

Revision c182087b
Added by Radhika Chippada 10 days ago

refs #9587
Merge branch '9587-include-trash-in-group-contents'

History

#1 Updated by Tom Morris 7 months ago

  • Assignee changed from Brett Smith to Tom Morris

#2 Updated by Tom Morris about 1 month ago

  • Assignee deleted (Tom Morris)
  • Target version set to 2017-05-10 sprint

#3 Updated by Tom Morris about 1 month ago

  • Subject changed from [Workbench] Interface to list and undelete expiring collections to [Workbench] Interface to list and untrash trashed collections
  • Description updated (diff)

#4 Updated by Tom Morris about 1 month ago

  • Story points set to 2.0

#5 Updated by Lucas Di Pentima about 1 month ago

  • Assignee set to Lucas Di Pentima

#6 Updated by Lucas Di Pentima 26 days ago

  • Status changed from New to In Progress

#7 Updated by Lucas Di Pentima 20 days ago

Branch 9587-wb-trash-tab pushed so Radhika can continue from there.
The parameter include_trash is on the collection's controller, so I was going to see if it should be added to the projects controller too, when I had to switch focus to other stories.

#8 Updated by Lucas Di Pentima 20 days ago

  • Assignee changed from Lucas Di Pentima to Radhika Chippada

#9 Updated by Radhika Chippada 18 days ago

  • Target version changed from 2017-05-10 sprint to 2017-05-24 sprint

#10 Updated by Radhika Chippada 11 days ago

Branch 9587-include-trash-in-group-contents @ 461b3f5a2edb53adda4f3b703d77e9efc0c262e9

Added support for include_trash param in groups_controller -> contents method. This is API server update only.

Test run @ https://ci.curoverse.com/job/developer-run-tests/291/

#11 Updated by Lucas Di Pentima 10 days ago

Branch 9587-include-trash-in-group-contents LGTM, thanks.

#12 Updated by Peter Amstutz 6 days ago

is_trashed is set once trash_at is in the past. In the case of temporary files, trash_at is in the future.

I think we want workbench treat files with trash_at in the future similarly to the trashed files (trashed_at in the past).

If we show temporary files (trash_at in the future) as "normal" files, then (a) it defeats the goal of decluttering the workbench listing and (b) means they can't actually be undeleted until trash_at passes.

So, instead of looking for is_trashed=true, Workbench should filter for "trash_at != nil" in the Trash tab and "trash_at == nil" in the regular Collection tab.

#13 Updated by Tom Morris 6 days ago

This is conflating two different things - 1) something which has been deleted/trashed and 2) something which is expiring and will be deleted/trashed in the future.

These aren't the same thing and they mean different things to the user. We need to stop thinking about this from the point of view of technical limitations cause by our particular token expiration strategy and look at it from the point of view of the user.

The story as written was fine. If we want to also implement a filtering strategy for things which will be expiring at some point in the future we can do that, but it isn't the same thing.

#14 Updated by Peter Amstutz 6 days ago

Should the Trash tab show collections with "trash_at" in the future? Because if not, there won't be any way in the UI to stop a collection from being trashed in the future.

#15 Updated by Peter Amstutz 6 days ago

(The description, as written, does not define precisely the criteria for a collection to appear under the "Trash" tab)

#16 Updated by Radhika Chippada 6 days ago

TomM and Peter, the more I look into it, the more this UI design is not making sense to me. Are we sure what we want is a project#Trash tab? It feels like an index page /trashed_collections (or something like that) would be lot more useful for the users.

This project#Trash tab is not making sense because if a user wants to look at trashed collections and untrash, he needs to go into each project and look for these collections. Adding another tab that is not very useful seems like a major wasted investment in a wrong place than doing the more useful /trashed_collections page. I think a /trashed_collections page and a link to it in the "Recent collections" panel on Dashboard might be a better UI design.

#17 Updated by Peter Amstutz 5 days ago

I had a similar thought. Once an object is trashed (not just future trash) it's going to be very hard to find in order to recover it, because the default behavior is to deny that it exists.

One thought I had is if you know the uuid and request the show page in workbench, it could request the record with include_trashed=true and present you with a "do you want to untrash this" page.

#18 Updated by Radhika Chippada 4 days ago

  • Description updated (diff)

#19 Updated by Radhika Chippada 4 days ago

  • Target version changed from 2017-05-24 sprint to 2017-06-07 sprint

#20 Updated by Radhika Chippada 4 days ago

  • Description updated (diff)

Also available in: Atom PDF