Open Bug 94407 Opened 18 years ago Updated 7 months ago

Undo/Redo option for deleted address book cards

Categories

(MailNews Core :: Address Book, enhancement, P1)

enhancement

Tracking

(Not tracked)

People

(Reporter: fenella, Unassigned)

References

(Blocks 1 open bug, )

Details

(Whiteboard: [patchlove][gs])

Attachments

(2 obsolete files)

This bug is used to track the implementation of the Undo option for deleted
address book card.
QA Contact: fenella → nbaca
reassigning to cavin
Assignee: chuang → cavin
Marking nsbeta1 so that users can recover from accidentally deleting an address
card. Currently when a card is deleted it is done automatically, no warning.
Instead of a warning I would rather see an Undo menu item.
Keywords: nsbeta1
Summary: [Feature] Undo option for deleted address book cards → [Feature] Undo option for deleted address book cards
Whiteboard: nab-menus
Status: NEW → ASSIGNED
Keywords: nsbeta1nsbeta1-
Target Milestone: --- → mozilla1.2
Adding "Redo" to the Summary.

Nominating to be implemented in the next version.
Note: The Undo/Redo feature should work for cards, lists and address books.
Please let me know if I should create additinal bugs.
Summary: [Feature] Undo option for deleted address book cards → [Feature] Undo/Redo option for deleted address book cards
Whiteboard: nab-menus → nab-menus,[ish]
Whiteboard: nab-menus,[ish] → nab-menus,[ish-]
Nominating again because mistakes will still occur even with a warning "Are you
sure you want to delete the selected address book?". 

For instance, the user is in a hurry and might think that they have a card
selected and when they delete they may not read the warning completely. They OK
through the warning and then realize that they deleted the entire address book!
There is no way to recover from this. An undo would help greatly in these
situations.
Keywords: nsbeta1-nsbeta1
Mail triage team: nsbeta1+/adt2
Keywords: nsbeta1nsbeta1+
Whiteboard: nab-menus,[ish-] → [adt2] nab-menus,[ish-]
I would prefer a warning since it is too easy to press delete and not realize
it.  Having a warning message appear stops all other input completely until "the
very important question is answered". If you need to make multiple deletes you
can select the items first and then delete them.   Regarding comment #4 if the
user is in a hurry and didn't realize he pressed delete a warning message would
give him the opportunity to cancel and continue working when he has more time. 
If he has no message he wouldn't even know he deleted addresses.  Which ever way
is preferred something should be implemented because Address book data is so so
important and difficult to recover if lost.  I feel the same way about bookmarks
Target Milestone: mozilla1.2alpha → mozilla1.4beta
Mail triage team: nsbeta1-
Keywords: nsbeta1+nsbeta1-
Whiteboard: [adt2] nab-menus,[ish-] → nab-menus,[ish-]
when we get to this, we better make sure to properly update the deleted cards
table (that we keep around for absync / palm sync)
I agree with comment #6, "Address book data is so so
important and difficult to recover if lost." Think
about the level of protection offered for e-mail messages:
Even though many are not very important, it is possible
to Undo a message deletion, AND, ON TOP OF THAT, the
deleted message is still in the "Trash", if the
preferences are set up the way most people do. Address
book data is MUCH more important than e-mail messages,
there is no "Trash" for the address book, there is no
warning, AND there is no Undo. IMHO all of the following
changes should be made:
(1) It should not be possible to delete a card by
    pressing the "Del" key on the keyboard. I mean,
    for God's sake, it's RIGHT NEXT TO THE ARROW KEYS
    on the numeric keypad). I've deleted so many cards
    accidentally it's not funny.
(2) If a card is deleted by clicking on the Delete
    button on the Address Book Toolbar or the menu item
    Edit | Delete Card, there should be a warning.
(3) If the user confirms the delete, there should be
    an Undo/Redo menu item.
(4) Perhaps even consider setting up a "Trash"
    ("Deleted Addresses"?) for the Address book.
    It could be emptied the same way as the Trash
    folder is for the mail client.
I'm using Mozilla 1.7b (Gecko/20040316).  Inadvertently deleted address book
cards and am unable to retreive them.  Undo is greyed out.  Irretreivable data
loss.  It may as well be a crash.

This bug is serious enough to severely limit wider acceptance of the Mozilla
product.  Users will not use a software product if they're reluctant to commit
their data to it for fear of losing their data.
Once again I've accidentally deleted an address card and can not recover it.  
I find it odd that if I close a browser window with multiple tabs or move a mail
folder to the trash folder, I receive a warning dialog box.  In all the
situations mentioned, the information can be easily retrieved through the
history or going to the trash folder.
It does not make sense to me that data so is easily retrievable like a recently
visited website or a mail folder moved to trash are given warnings prompts but
data requiring much more effort to recover is not given a simple warning.

I suggest a prompt similar to the warning when a multi-tabbed window is closed
be added to the address book. This prompt would appear when deleting address
cards or address lists.  If a person decides he/she no longer wishes to see the
prompt, it can be disabled. This solution clearly informs someone that the
information will be permanently lost and seems much simpler than implementing
undo/redo options.
I agree with the comments in #6, #9, #10 and #11: This is primarily a bug to be
fixed and not just a [Feature] request.  The present software makes it entirely
too easy to lose valuable contact data that may be difficult or impossible to
recreate.

As a minimum, a warning dialog should be issued and positive confirmation
required in order to delete a card or list of cards.  The dialog should warn
that the delete cannot be undone.  I'm uncertain as to whether having a "don't
tell me about this again" checkbox is a good idea, but I tend to think not until
some sort of recovery path is available.  The easiest interim implementation (to
patch the bug part of this problem by implementing this without the checkbox.



If some sort of safety fence against accidental data loss is in place, other
nicer options then become feature requests.  The checkbox for those who like to
operate in fast-n-dangerous mode is nice, particularly if combined with an undo
operation to correct immediate "oopsies".

I like the idea in #9: Why not treat contacts as being as important as messages?
 When a card is deleted from a normal address book, move it to a "Deleted Cards"
book (creating it, if needed) instead.  A lightweight warning could be issued at
this point, with a checkbox for an experienced user to suppress further such
warnings.  Cards would only be permanently deleted (with a non-suppressed
warning) when the deleted cards book is emptied or deleted, or when selected
cards are deleted from that book.
Depends on: 257599
Blocks: 257599
No longer depends on: 257599
Blocks: 266100
Product: Browser → Seamonkey
No longer blocks: 266100
Assignee: cavin → sspitzer
Status: ASSIGNED → NEW
QA Contact: nbaca
Target Milestone: mozilla1.4beta → ---
Blocks: 240520
Quick fix to avoid deletion of address book cards.
Perhaps only the prompt for multiple cards deletion should be kept when
undo/redo (and cards trash) will be available.
Attachment #178521 - Flags: review?(ducarroz)
Comment on attachment 178521 [details] [diff] [review]
Add a warning dialog on card(s) deletion

Looks good for me. But please remove the commented out code before checkin
Attachment #178521 - Flags: superreview?(bienvenu)
Attachment #178521 - Flags: review?(ducarroz)
Attachment #178521 - Flags: review+
I think we agreed to do undo/redo, and not to do the confirmation on delete of
cards...I think Mark Banner(?) was working on that...
Assignee: sspitzer → mail
David is right, we don't want to prompt every time the user deletes a card. We
need to spend the time getting undo/redo to work. I made a start on it but
didn't get very far and probably won't be able to pick it up till after the next
round of major releases so if anyone wants to help, please do.
Keywords: helpwanted
Blocks: 236340
The previous post states "...we don't want to prompt every time the user deletes
a card..."; I do not think this statement is completely accurate. Users do not
spend all day deleting address cards like going through an inbox full of junkmail.  

Too many things can go wrong with undo/redo – it is just too passive.  Have you
ever started typing and then realized the window focus was on a background window? 

As mentioned previously, a prompt similar to closing a browser window with
multiple tabs is still a better solution to me.  The user has the choice to turn
future prompts off.

If all the points in this bug report have not been convincing,  having the
undo/redo option would be a big improvement to the current situation.
Assignee: mail → nobody
Component: Address Book → MailNews: Address Book
Product: Mozilla Application Suite → Core
QA Contact: addressbook
Comment on attachment 178521 [details] [diff] [review]
Add a warning dialog on card(s) deletion

we really would prefer undo/redo...
Attachment #178521 - Flags: superreview?(bienvenu) → superreview-
No longer blocks: 257599
Blocks: 275948
No longer blocks: 275948
*** Bug 240520 has been marked as a duplicate of this bug. ***
No longer blocks: 240520
Are there any programming difficulties (updating a volatile reference table, not being sure of knowing all existing pointers etc.) in implementing solution 4 of comment #9 ? If yes I fear that the MAB file is mapped in memory, isn't it ?
Severity: normal → enhancement
Duplicate of this bug: 399562
Duplicate of this bug: 409620
feels odd putting dataloss on an enhancement bug, but it's kinda true.
another big win for user IMO, so nominating blocking.
Flags: blocking-thunderbird3?
Keywords: dataloss
bug 294878 related
comment 25 wrong - bug 383752 related
Duplicate of this bug: 383752
Product: Core → MailNews Core
wanted, not blocking, I don't think - marking p1, however.
Flags: wanted-thunderbird3+
Flags: blocking-thunderbird3?
Flags: blocking-thunderbird3-
Priority: -- → P1
Blocks: 42085
Duplicate of this bug: 455183
Duplicate of this bug: 458155
Comment from my Ubuntu bug https://bugs.launchpad.net/thunderbird/+bug/306438:

> Right-clicking on the column names in the address book
> includes a "Delete" option in the menu. Unfortunately,
> this does not "delete" the highlighted column, but rather,
> the highlighted contact. Ouch. Making matters worse,
> there is no undo.
> 
> Probably the simple fix would be to have right-click
> on the column headings in the address book display a
> different menu, or no menu at all.
(In reply to comment #31)
> Comment from my Ubuntu bug https://bugs.launchpad.net/thunderbird/+bug/306438:
> 
> > Right-clicking on the column names in the address book
> > includes a "Delete" option in the menu. Unfortunately,
> > this does not "delete" the highlighted column, but rather,
> > the highlighted contact. Ouch. Making matters worse,
> > there is no undo.
> > 
> > Probably the simple fix would be to have right-click
> > on the column headings in the address book display a
> > different menu, or no menu at all.

I took a look and My understanding is the Right Context menu applies to the Pane in general, not the Col Head.  To hide Col Heads, use the Col Picker at far right.

The second paragraph would be a separate bug from this bugs request.
Found bug 429925 and added a comment there.  Thanks for the feedback.
Duplicate of this bug: 483988
Duplicate of this bug: 485158
It's not clear to me what, if anything, has actually been done about the address card delete situation, but I know that in version 2.0.0.21 (20090302) I just deleted a card without benefit of a confirmation dialog or any undelete mechanism that I could find.  I searched the options looking for a setting to enforce delete confirmation, without success.

I'd like to add my support for delete confirmation.  The ability to trash contact data with a single keypress is a scary situation.  An undelete option would be a distant second choice.
I'm working on bug 339227 which is somewhat related, so if no one is on this one at the moment I'd like to try put up a patch for undo/redo-ing deleted address book cards too.
(In reply to comment #37)
> I'm working on bug 339227 which is somewhat related, so if no one is on this
> one at the moment I'd like to try put up a patch for undo/redo-ing deleted
> address book cards too.

Reassigning to you - afaik no-one is working on this.
Assignee: nobody → yuenhoe
Duplicate of this bug: 509615
Duplicate of this bug: 512670
Duplicate of this bug: 534438
(In reply to comment #41)
> *** Bug 534438 has been marked as a duplicate of this bug. ***

Users have been complaining about lack of restore for addresses since 2001.
It's an easy fix i.e like in OUTLOOK.
How about getting it done!
Question: the bug says 'undo/redo' for deleted address book CARDS. Is delete-undo also needed for address lists? I notice that the latter actually has a delete confirmation dialog. Just wanted to make sure before diving in because I think also doing delete undo for lists would make things get stickier.

Sorry about the long absence by the way. I tried for awhile without success to get this working back in the day, and then this and that happened, so I'm starting fresh on this again.
(In reply to comment #43)
The most important restore is for cards which have been deleted in error.
Whilst it would be nice to be able to restore a list which was deleted in error, he can always restore a list by creating it again. I think it is enough if the user to be warned that he is about to delete a list (with the list named in the warning)

Glad you're back on the task.

Kurt Rosenfeld
> Question: the bug says 'undo/redo' for deleted address book CARDS. Is
> delete-undo also needed for address lists? I notice that the latter actually
> has a delete confirmation dialog. Just wanted to make sure before diving in
> because I think also doing delete undo for lists would make things get
> stickier.
> 
> Sorry about the long absence by the way. I tried for awhile without success to
> get this working back in the day, and then this and that happened, so I'm
> starting fresh on this again.
I've made several attempts on this now but did not manage to produce something satisfactory. On the other hand school is now pinching down on me so I don't think I'll be able to work on this anymore for some while.

Unassigning myself for now to make room for anyone interested to take this up. If no one does take this up I'll come back to it once my schedule frees up.
Assignee: yuenhoe → nobody
I can't believe this has been talked about since 2004 and still not fixed.  I have now twice inadvertently deleted contacts (with no way to retrieve or undelete them, or even to know which ones were deleted), and I'm ready to switch BACK to Outlook.
Not since 2004, since 2001!!!  It's simply another reason to avoid using Thunderbird's address books.  I also have not been able to recover a few contacts, not yet an entire book.  This coupled with other outstanding AB bugs such as 248786 which has been in the works since 2004 setting out that a card cannot be dragged and dropped to a list or another AB; bug 282841 since 2005 similar to 248786; bug 222725 add support for sub folders in address book (hierarchical address book) ongoing since 2003. 

It would appear that since the demise of Netscape very little, if anything, has been done with Thunderbird's address book. FYI, I have copied TB's AB to Gmail and primarily due to the the poor address book primarily use Gmail, not TB.
Might a thorough review/refactorment of some sort on the address book's code be good? I had a lot of trouble back while working on this because I found things really compliated and confusing and code behaving seemingly inconsistently. Coupled with next to 0 documentation made it a nightmare for newcomer contributors like myself. I'd repeatedly spend days devising then implementing a possible solution only to hit a dead wall because something isn't what I thought it was or simply refused to work :(
Whiteboard: nab-menus,[ish-] → [patchlove][has draft patch][needs new assignee][gs]
simply, just to add a button to confirm the delete
At least, il will be nice to have a confirmation dialog when deleting.
(In reply to comment #50)
> At least, il will be nice to have a confirmation dialog when deleting.

Look at comments 17:
>we don't want to prompt every time the user deletes a card. We
>need to spend the time getting undo/redo to work.
(In reply to comment #49)
> simply, just to add a button to confirm the delete

Generally it's preferable not to nag the user to confirm an action, if it's clear to them that they can undo it if they stuff up.

The difficulty that arises is that not all actions can be undone. Explorer in XP is abhorrent like this. Imagine you perform two steps, one that can be undone, followed by one that cannot be undone. The latter is NOT held in the undo stack. In trying to undo the latter, you unwittingly undo the former. Depending how far back in time that was, you may have no idea what you just undid.

Within a window, EVERY non-idempotent action must be undoable (and redoable!), otherwise Undo becomes too complicated and too unreliable to use because it never undoes the things that you need, and you abandon it out of frustration.

Also, the Undo menu item MUST state "Undo [name of action and object]" as a reassurance that you're undoing the right thing. Not strictly necessary in an ideal world, but critical as a reassurance in a world where Undo is widely mis-implemented. Win XP Explorer for example offers few hints as to what exactly you will be undoing, and certainly not to what file or folder.
Comment on attachment 178521 [details] [diff] [review]
Add a warning dialog on card(s) deletion

Patch has bitrotted.

$ patch -p0 --dry-run < ~/Desktop/dl.diff 
(Stripping trailing CRs from patch.)
patching file mail/components/addrbook/content/abCommon.js
Hunk #1 FAILED at 58.
Hunk #2 FAILED at 321.
Hunk #3 FAILED at 337.
3 out of 3 hunks FAILED -- saving rejects to file mail/components/addrbook/content/abCommon.js.rej
Attachment #178521 - Attachment is obsolete: true
Comment on attachment 178522 [details] [diff] [review]
Text strings for the warning dialog

Patch has bitrotted.

$ patch -p0 --dry-run < ~/Desktop/addressBook.properties.patch 
(Stripping trailing CRs from patch.)
patching file mail/locales/en-US/chrome/messenger/addressbook/addressBook.properties
Hunk #1 FAILED at 65.
1 out of 1 hunk FAILED -- saving rejects to file mail/locales/en-US/chrome/messenger/addressbook/addressBook.properties.rej

Without a new approach these patches, even if unbitrotted, might not be the best way forward..
Attachment #178522 - Attachment is obsolete: true
I came here because I too have just accidentally deleted a contact. No warning whatsoever. And I wasn't even sure who it was I deleted. I eventually got it back by hacking the mork file. What a pile of ****!!

This bug is coming up for its TEN YEAR ANNIVERSARY in August. Great work, guys. Should we hold a special party?
Weird, we have had that discussion before:
Users want a warning message (bug 308690, bug 512669, about [shift-]deleting messages), developers don't like the nagging message, so in the end, nothing happens. But users lose out, and lose their data, sometimes without even noticing.-
The obvious solution to such problems is customizability! Here, implement the confirmation and add an "Don't show this again" checkbox. Yes, it's work, and yes, it may need more UI elsewhere, but undo just doesn't provide the same level of safety.

Furthermore, as has been said before, and ignored so far, I find it difficult to imagine that somebody would regularly delete more than a few individual contacts.
Blocks: 526541
Blocks: 343973
Blocks: 650789
I have filed a bug that provides detailed arguments why complex UNDO is not good enough (apart from not being realized), and why the simple "confirmation on delete" dialogue would be a good and simple solution to this insidious dataloss problem:

Bug 650789 - Please add a "confirmation on delete" dialogue for address book entries ("Are you sure you want to delete the selected contact(s)?")!!!

This bug was duplicated against
Bug 526541 - Please add a "confirm on delete" option for address book entries...
That bug starts out from the somewhat vague case where, with focus on the main addressbook's contact list, user types the initial letters of a contact and then wants to delete the last character of that invisible search sequence.

So the discussion on confirmation-on-delete is now going on in bug 526541. Don't forget to vote for those bugs if you like the idea, and prefer a quick fix that could actually happen over a promised complex fix (this bug) that hasn't happened for the last 10 years, and seems unlikely to happen anytime soon, given that it is currently assigned to nobody.
Blocks: 665267
User story for Undo delete Address Book Contact: A user deletes a contact, by accident or on purpose, with or without explicit notification, and does an undo for this action upon which the delete is reverted and the contact is available in the address book again.

Please implement this and possible other cases before this bug starts to go into puberty. ;)
See Also: → 956433
Whiteboard: [patchlove][has draft patch][needs new assignee][gs] → [patchlove][gs]
Keywords: dataloss, helpwanted
See Also: → 526541
Summary: [Feature] Undo/Redo option for deleted address book cards → Undo/Redo option for deleted address book cards
You need to log in before you can comment on or make changes to this bug.