Closed andrewjbtw closed 1 month ago
Blocked by needing to support withdrawing in purl-fetcher.
Please see these mockups for latest design (updated the yellow banner to conform to the new banner styles we defined) Older version: https://www.figma.com/proto/XjubCohES3rE8xSQpiNghq/Versioning?page-id=0%3A1&node-id=320-782&viewport=-12727%2C-3675%2C1&t=Q8XjDGjx2EhhCXEa-1&scaling=min-zoom&content-scaling=fixed&starting-point-node-id=320%3A782&show-proto-sidebar=1 Withdrawn version: https://www.figma.com/proto/XjubCohES3rE8xSQpiNghq/Versioning?page-id=0%3A1&node-id=541-1014&viewport=-12727%2C-3675%2C1&t=Q8XjDGjx2EhhCXEa-1&scaling=min-zoom&content-scaling=fixed&starting-point-node-id=541%3A1014&show-proto-sidebar=1
The scope of this ticket is to add the Withdraw and Restore buttons and have them update the User Version in DSA by invoking the user version update endpoint. This should follow the logic described above for determining when a user version can be withdrawn / restored. (It might be worth considering if that business logic should be in DSA, rather than Argo.)
When an item has multiple user versions, we need to support the ability to withdraw an older version. An older version may be withdrawn for a number of reasons: author's request, third-party takedown, etc. The mechanics of the approval of a withdrawal request is outside the scope of SDR applications. This will not be self-service for depositors and won't be supported in H2. Instead, similar to other takedowns of ETD or H2 items, the request will go through email and be approved that way.
We are supporting this in Argo because there is the potential to add user version creation to Argo in the future. We do not want to implement it only in H2 and then find that we need to implement it again in Argo. This also allows H2 to operate only on latest versions rather than on the whole history of an item.
The withdraw interface
Argo users will be able to handle withdrawal requests through a "Withdraw" button on the Argo interface. (Figma)
The button should only display under the following conditions:
When a user clicks on the "Withdraw" button, pop up a confirmation box. In the box, display this message:
What happens when you withdraw
When a version is withdrawn,
Argo show page for a withdrawn version
Once a version has been withdrawn, the show page for that version should:
(Figma)
Restoring a version, aka un-withdrawing
We should also support restoring a withdrawn version. Especially while the feature is new, we may find that we need to restore a version that had been withdrawn. Putting this in the Argo UI will make it easier to correct possible mistakes.
Restoring a version will be like withdrawing a version. When the user clicks the restore button, show a dialog box with this message:
Restoring the version should mean:
Additional context
Withdraw/restore apply only to old user versions. The following cases are different in significant ways:
Full takedown of all versions + a message about the item on the latest version.
In this case, we would withdraw all old versions and create a new latest version with a message. I've been creating tombstones like this for content with DOIs since DataCite requests that we do not take pages down completely. Instead, the DOI resolves to a page that indicates that content has been removed (or moved to a new URL).
Actual file deletion and other exceptional requests
For example, if we need to remove files for privacy reasons. This will likely take some manual work, as it does now in these situations. We also have had one or two takedowns where we went as far as making an effort to de-list items from search engines. We should not even show a tombstone purl under that circumstance.
Takedowns of items that are not using "user" versioning
We will continue to have collections materials (not H2, ETD, etc) where we will take the items down by changing the rights to dark. That operation should continue to remove the Purl and not leave a tombstone behind.