Skip to content

Undo deletion (of files, users, contacts etc) #3216

Description

@jancborchardt

(Since the relevant pull request was closed, opening this to track the feature: #1610 )

We should offer undo for destructive actions. This is a normal software pattern now (see Gmail, Android etc) and is very nice as opposed to modal windows. Also read Never Use a Warning When you Mean Undo

cc @nextcloud/javascript @ChristophWurst

Activity

  1. added this to the Nextcloud 12.0 milestone on Jan 23, 2017
  2. skjnldsv commented on Jan 26, 2017

    @skjnldsv
    Member

    What style of popup/modal/notification do we want for that?

  3. jancborchardt commented on Feb 22, 2017

    @jancborchardt
    MemberAuthor

    I would say showNotification is fitting in this case. We used that before I think in the News app or somewhere else.

  4. jancborchardt commented on Mar 27, 2017

    @jancborchardt
    MemberAuthor

    @schiessle mentioned that this could be done by triggering the restore function of the »Deleted files« app. Might be good as a first working implementation. :)

    cc @icewind1991 @ChristophWurst

  5. skjnldsv commented on Sep 28, 2017

    @skjnldsv
    Member

    What about a menu like the contact menu with a count indicator (like the notification icon) of how many items are still in the undo section?
    On each item we could have a progressbar to display how many time left the user have before final deletion?

  6. jancborchardt commented on Sep 29, 2017

    @jancborchardt
    MemberAuthor

    @skjnldsv a counter is not really necessary and strangely obstructive. That’s also not how any other undo mechanism works which people are used to from Google or Apple apps. :)

  7. jancborchardt commented on Nov 13, 2017

    @jancborchardt
    MemberAuthor

    Traditional tri-yearly postponing of this issue to the next milestone. 🎉

  8. 10 remaining items

  9. Quix0r commented on Mar 17, 2019

    @Quix0r

    You are running through open door here. :-) Mine was exactly the same with a specific idea for the database side.

  10. natrius commented on May 14, 2019

    @natrius
  11. marcelklehr commented on Apr 29, 2021

    @marcelklehr
    Member

    if the client looses the connection to the server during these seven seconds, the object can't be finally deleted. Is this anyway a valid approach for generalization?

    @korelstar Good point. What do you say @jancborchardt ?

  12. ecc86 commented on Jun 8, 2021

    @ecc86

    Drawback of this approach: if the client looses the connection to the server during these seven seconds, the object can't be finally deleted. Is this anyway a valid approach for generalization? The advantage is that it's implementation is relatively easy (only frontend).

    Wouldn't it be possible to have something like a cron job in the backend handle such requests of deletion? The frontend would then only communicate, that the file to be deleted will be gone in minimum 7 seconds and maximum $cron_repeat_time_for_delete_requests (or something).

    Sorry I am just a hobbyist developer, no more coding expierience in PHP for many years..

  13. beedell-roke commented on Mar 10, 2023

    @beedell-roke

    I just lost all of my contacts in Nextcloud because Outlook decided that a deletion of its contact via the Google Contacts Android application deletes all linked contacts. I can't believe that I can see all of my contacts in the activity log, but that no recycle bin of sorts exists.

    This is really necessary.

    By the way, @jancborchardt, http://alistapart.com/article/neveruseawarning was exactly the reason that I accidentally did this.

  14. moved this to 🧭 Planning evaluation / ideas in 🖍 Design teamon Feb 5, 2024
  15. moved this to Enhancements in Files to vueon Aug 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions