Idea #13494
closedBrowse previous versions of a collection
Description
See Collection version history
When viewing a collection in Workbench, a tab/button should show the history of prior changes. For each prior update, it should be possible to- view/star/bookmark the selected version of the collection (name, description, files, etc. as they appeared after the update)
- preview/download the files as they appeared in the selected version
- copy the selected version into a new collection
Implementation¶
- Build on work in #16718 and #16719
- The version selector is built on the collapsable ‘details’ pane to the right (see attached mockup) instead of the currently unused "Activity" tab. This would allow us to minimize the quantity of UI changes when displaying past versions.
- The versions listing should be ordered by date with the current version at the top.
- Should include consideration for how #16300 will work (user needs to select two versions in order to display differences).
Files
Updated by Tom Clegg over 6 years ago
- Related to Feature #13109: Support collection versions added
Updated by Tom Morris over 6 years ago
When searching collections, the user should have an option to include non-current versions in the results -- at least when searching by PDH.
Including old versions should always be an available search option (off by default). I'm not sure why it's restricted to searches by PDH.
"Data blocks" is an implementation detail. From the user's point of view, there's just data and metadata.
It feels like we may want a version number which users can easily use to reference a particular version of a collection, rather than forcing them to rely on dates or logical UUID chains.
Updated by Tom Morris over 6 years ago
- Blocked by Feature #13561: [API] Store, and add APIs to retrieve, previous versions of collection objects added
Updated by Lucas Di Pentima over 6 years ago
Some thoughts
- Update the collection view to show version list (using a dropdown widget?) and allowing the user to select another version of the collection
- URL for previous versions:
workbench.abcde.arvadosapi.com/collections/UUID/VERSION
- On previous versions, the “Copy to project…” button may be replaced by “Copy as new version…”. The “Move collection…” shouldn’t appear
- On previous versions, the “Upload” tab shouldn’t exist & file list should be read-only. The lock button isn’t necessary.
- On previous versions, name & description can’t be edited. Should “Sharing and permissions” pane appear?
Updated by Tom Clegg over 6 years ago
- Related to Idea #14086: [keep-web] Serve previous collection versions added
Updated by Tom Morris about 6 years ago
- Related to deleted (Feature #13109: Support collection versions)
Updated by Tom Morris about 6 years ago
- Subject changed from [Workbench] View/copy/expunge previous versions of a collection to [Workbench2] View/copy/expunge previous versions of a collection
We'll do this in the context of Workbench2 only.
Updated by Ward Vandewege over 5 years ago
- Related to Idea #15333: Workbench2 feature parity with Workbench added
Updated by Peter Amstutz almost 5 years ago
- Release set to 20
- Target version deleted (
To Be Groomed)
Updated by Peter Amstutz almost 5 years ago
- Target version set to 2020-02-12 Sprint
Updated by Lucas Di Pentima almost 5 years ago
- Assigned To set to Lucas Di Pentima
Updated by Peter Amstutz almost 5 years ago
- Target version changed from 2020-02-12 Sprint to 2020-02-26 Sprint
Updated by Lucas Di Pentima almost 5 years ago
- File Version selector.png Version selector.png added
Updated by Peter Amstutz almost 5 years ago
- Target version changed from 2020-02-26 Sprint to 2020-03-11 Sprint
Updated by Peter Amstutz almost 5 years ago
- Subject changed from [Workbench2] View/copy/expunge previous versions of a collection to View/copy/expunge previous versions of a collection
Updated by Lucas Di Pentima almost 5 years ago
- Blocked by Bug #16118: Offers editing actions on read-only collections added
Updated by Lucas Di Pentima almost 5 years ago
- Category changed from Workbench to Workbench2
- Description updated (diff)
Updated description removing all backend notes as this story is only about the UI.
Updated by Peter Amstutz almost 5 years ago
- Target version changed from 2020-03-11 Sprint to 2020-03-25 Sprint
Updated by Peter Amstutz almost 5 years ago
- Status changed from New to In Progress
Updated by Peter Amstutz almost 5 years ago
- Target version changed from 2020-03-25 Sprint to 2020-04-08 Sprint
Updated by Peter Amstutz over 4 years ago
- Target version changed from 2020-04-08 Sprint to 2020-04-22
Updated by Lucas Di Pentima over 4 years ago
- Blocks Idea #16300: Compare 2 collection versions added
Updated by Lucas Di Pentima over 4 years ago
- Status changed from In Progress to New
Updated by Lucas Di Pentima over 4 years ago
- Target version changed from 2020-04-22 to 2020-05-06 Sprint
Updated by Lucas Di Pentima over 4 years ago
- Target version changed from 2020-05-06 Sprint to 2020-05-20 Sprint
Updated by Peter Amstutz over 4 years ago
- Target version changed from 2020-05-20 Sprint to 2020-06-17 Sprint
Updated by Lucas Di Pentima over 4 years ago
- Target version changed from 2020-06-17 Sprint to 2020-07-01 Sprint
Updated by Lucas Di Pentima over 4 years ago
- Target version changed from 2020-07-01 Sprint to 2020-07-15
Updated by Lucas Di Pentima over 4 years ago
- Target version changed from 2020-07-15 to 2020-08-12 Sprint
Updated by Peter Amstutz over 4 years ago
- Target version changed from 2020-08-12 Sprint to 2020-09-09 Sprint
Updated by Peter Amstutz over 4 years ago
Customer feedback about collection versions:
- Page needs to make it clear when you are viewing an old version
- Sharing dialog needs to operate on the latest version and and say that it will share the entire version history
- Tell the user you need to make a copy ("fork this version") to be able to edit or share a single past version
- Should be able to search for and access old versions by PDH (on the UI side, the search dialog should have "include_past_versions=true" on the API side it should permit GET by PDH even if it is a past version).
Updated by Peter Amstutz over 4 years ago
- Related to Feature #16718: Searching past collection versions added
Updated by Peter Amstutz over 4 years ago
I'm wondering if there is a minimum viable ticket here that only includes:
- Something that says a collection is not the latest version
- A link to the latest version
- Tell the user they need to make a copy if they want to edit it
- Tell the user to go to the latest version if they want to share it
- #16718
Updated by Peter Amstutz over 4 years ago
- Related to Feature #16719: Basic support for collection versions added
Updated by Peter Amstutz over 4 years ago
- Description updated (diff)
- Subject changed from View/copy/expunge previous versions of a collection to Browse previous versions of a collection
Updated by Lucas Di Pentima over 4 years ago
- Target version changed from 2020-09-09 Sprint to 2020-09-23 Sprint
Updated by Lucas Di Pentima about 4 years ago
- Target version changed from 2020-09-23 Sprint to 2020-10-07 Sprint
Updated by Peter Amstutz about 4 years ago
- Target version changed from 2020-10-07 Sprint to 2020-10-21 Sprint
Updated by Lucas Di Pentima about 4 years ago
- Status changed from New to In Progress
Updated by Lucas Di Pentima about 4 years ago
- Target version changed from 2020-10-21 Sprint to 2020-11-04 Sprint
Updated by Lucas Di Pentima about 4 years ago
- Target version changed from 2020-11-04 Sprint to 2020-11-18
Updated by Lucas Di Pentima about 4 years ago
- Related to Bug #17098: Collection "restore from previous version" button added
Updated by Lucas Di Pentima about 4 years ago
Status update¶
Currrent code at arvados-workbench2|b7f96fb - Branch 13494-collection-version-browser
Test run: developer-tests-workbench2: #177
Code updates¶
- Allows PDH UI to list old versions.
- Shows new "old collection" icon on any DataTable-based component.
- Fixes places where the "search box label" on DataTable based components was wrong (ie: "Search files" on a project listing) by allowing customization.
- Refactors details panel removing the unused "Activity" tab and allowing custom tabs per resource. (ie: Versions tab for collections)
- Sets "Owner" column off (it's still possible to enable it) on various listing panels as the provided info is redundant and takes lots of horizontal space.
- Populates the "Versions" tab on the collection's detail panel with a clickable listing of versions (aka the "version browser").
- Makes the version retrieval only happen when the details panel is open.
- Allows the user to directly open the version browser by clicking on the collection's version number on the main info panel.
Pending¶
- Use virtual version listing to avoid the same issues we had with big collections: only process what's being rendered, avoding setting too many event handlers, etc.
- Layout enhancements: the version browser column header needs better alignment with the listing contents. Also, the listing row height might need adjusting (making it more compact).
- Add a "make version current" action on the old version UI. (Refs #17098)
- Tests.
Updated by Peter Amstutz about 4 years ago
Timestamps are a little weird.
created_at is copied directly to the snapshot, so created_at is the same for every version.
modified_at is the last time the record is modified. But what this means is that when a snapshot is created, the modified_at is set to when the snapshot is created, but the "head" record is also modified, so both the "head" version and the second-to-last versions have the same modified_at.
However, what I probably want to see when browsing versions is the timestamp for when that version came into being. So version 1 is the created_at time, version 2 is when version 2 was created, version 3 is when version 3 was created. etc.
Currently, showing modified_at means version 1 actually shows the time version 2 came into being, version 2 shows the time that version 3 came into being, etc.
The details view is similarly confusing (modified_at doesn't really mean what you think it means).
Let's discuss whether the solution is to change the backend (maybe the snapshot should copy modified_at?) or accommodate it on the frontend.
Updated by Peter Amstutz about 4 years ago
The "head version" field is not shown on the "latest" collection. This causes the fields to shuffle around between "lastest" and past versions. We should either inlcude the head version field the same way or use a placeholder like "Head version: this"
Updated by Peter Amstutz about 4 years ago
The "Version: N" field lets you click on it and it opens the sidebar with the versions tab selected. Can we do the same thing with "info" button?
Updated by Peter Amstutz about 4 years ago
This is unrelated to versions except that you mentioned "Fixes places where the "search box label" on DataTable based components was wrong (ie: "Search files" on a project listing) by allowing customization."
When you search and there are no hits, the message is "Your project is empty. Please create a project or create a collection and upload a data." instead of something like "There are no results from your search".
Updated by Lucas Di Pentima about 4 years ago
- Target version changed from 2020-11-18 to 2020-12-02 Sprint
Updated by Lucas Di Pentima about 4 years ago
Updates at arvados-workbench2|f85043c3
Test run: developer-tests-workbench2: #182
Updates¶
- "Head version" attribute is always displayed on the collection panel, so that other attributes don't get shuffled on the UI.
- Optimised the details panel component so that it re-renders only when necessary.
- Enhanced the version browser layout, making it more compact, getting the column labels aligned.
- Changes the collection status renderer so that "current version" is now "head version" and "old version" is now "version N". This labels appear on search and pdh listings.
- Fixed a collection property removal bug that I found while playing with versioning.
- Changed several collection related actions to be asynchronous instead of using "async/await".
- Fixed failing integration tests related to searching old versions.
Pending¶
- Writing some integration tests for this new feature
- Re: empty project icon/message when no search results: can we make that a different ticket? I've briefly checked if it was something super trivial but couldn't find a solution yet.
- Re: Information icon displaying the "versions" tab: This is a generic piece of UI and what it does is toggling the (status of) details panel. Because it was not super obvious the best way to not show a certain tab depending on the current UI view (ie: show the details tab on project listings, but not on collection panel) I added the "direct access" link to the version browser via clicking the version number. Maybe if I can somewhat know in which UI the user is at any moment (not sure if this is recorded on the app's state) I can add a "default tab number" per type of detail panel.
Updated by Peter Amstutz about 4 years ago
Lucas Di Pentima wrote:
Updates at arvados-workbench2|f85043c3
Test run: developer-tests-workbench2: #182Updates¶
- "Head version" attribute is always displayed on the collection panel, so that other attributes don't get shuffled on the UI.
- Optimised the details panel component so that it re-renders only when necessary.
- Enhanced the version browser layout, making it more compact, getting the column labels aligned.
- Changes the collection status renderer so that "current version" is now "head version" and "old version" is now "version N". This labels appear on search and pdh listings.
- Fixed a collection property removal bug that I found while playing with versioning.
- Changed several collection related actions to be asynchronous instead of using "async/await".
- Fixed failing integration tests related to searching old versions.
This all looks great!
Pending¶
- Writing some integration tests for this new feature
Yep, I think that's the last thing to do.
- Re: empty project icon/message when no search results: can we make that a different ticket? I've briefly checked if it was something super trivial but couldn't find a solution yet.
https://dev.arvados.org/issues/17153
- Re: Information icon displaying the "versions" tab: This is a generic piece of UI and what it does is toggling the (status of) details panel. Because it was not super obvious the best way to not show a certain tab depending on the current UI view (ie: show the details tab on project listings, but not on collection panel) I added the "direct access" link to the version browser via clicking the version number. Maybe if I can somewhat know in which UI the user is at any moment (not sure if this is recorded on the app's state) I can add a "default tab number" per type of detail panel.
If this is too annoying to fix, then leave it as is.
Updated by Lucas Di Pentima about 4 years ago
Updates at arvados-workbench2|f40add99
Test run: developer-tests-workbench2: #186
- Added integration test for collection's version browsing.
Updated by Peter Amstutz about 4 years ago
Two things:
1) The "Add to favorites" shows up in the action menu, but this doesn't work for past versions.
2) How hard would it be to make an action context menu show up when you right-click a row in the "Versions" list?
Otherwise this looks really good and I think it's almost ready to merge
Updated by Lucas Di Pentima about 4 years ago
From chat: above comment nr 1) is about not showing the "add to favorites" action on past version collections. It'll be implemented on #17098 as I already have related code written on it.
Updated by Lucas Di Pentima about 4 years ago
Updates at arvados-workbench2|306d28fe
Test run: developer-tests-workbench2: #190
- Adds context menu support on collection versions browser.
- Adds checks on the integration test case.
Updated by Peter Amstutz about 4 years ago
Lucas Di Pentima wrote:
Updates at arvados-workbench2|306d28fe
Test run: developer-tests-workbench2: #190
- Adds context menu support on collection versions browser.
- Adds checks on the integration test case.
On Firefox, I'm not getting the action context menu when I click on an item in the versions list (I do get the browser's context menu).
Updated by Lucas Di Pentima about 4 years ago
It works on my side, with Firefox 83.0 64-bits. Do you get any kind of JS console message?
Updated by Peter Amstutz about 4 years ago
Lucas Di Pentima wrote:
It works on my side, with Firefox 83.0 64-bits. Do you get any kind of JS console message?
It's working now. Maybe I had a stale js cache.
LGTM, please merge!
Updated by Anonymous about 4 years ago
- % Done changed from 50 to 100
- Status changed from In Progress to Resolved
Applied in changeset arvados-workbench2|3c2e32130d4229eada68f21d4000da9a0f844ba4.