latos / wave-protocol

Automatically exported from code.google.com/p/wave-protocol
0 stars 0 forks source link

Delete key should not delete blips #254

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
If a blip is selected but not in editing mode, pressing the Delete key will 
delete the blip with no confirmation or any way to undo the action.  This can 
be problematic because it is easily to accidentally delete a blip and there is 
no way to see what the deleted blip said.

This should be removed, reserved for a blip-level editing mode, or at least 
display some sort of confirmation before the blip is removed.

Original issue reported on code.google.com by zmy...@gmail.com on 6 Apr 2011 at 4:51

GoogleCodeExporter commented 8 years ago
This should be marked as an enhancement, not a defect.  If someone knows how to 
switch that, please do so or let me know how.

Original comment by zmy...@gmail.com on 6 Apr 2011 at 4:52

GoogleCodeExporter commented 8 years ago

Original comment by vega113 on 7 Apr 2011 at 4:23

GoogleCodeExporter commented 8 years ago
Some tips for someone that wants to handle this issue:
When a user clicks on the "delete" control on the blip menu the event is 
handled in the MenuController.onMouseDown method. It then passes control to 
ActionsImpl.delete method. That would be a good place to make user confirm the 
blip deletion.
if (Window.confirm("Are you sure?")) {
  ...//delete blip logic
} else {
  return;
}

Original comment by vega113 on 19 Apr 2011 at 9:20

GoogleCodeExporter commented 8 years ago
If possible, I think it would be better to let the blip be deleted without 
confirmation and instead have a bar with an undo button appear when the blip is 
deleted (similar to Gmail).  I realize that is probably more difficult, so it 
may make sense to use a confirm() temporarily, but I (and most users) find it 
nicer to not get a pop-up for every action.

Original comment by zmy...@gmail.com on 19 Apr 2011 at 2:47

GoogleCodeExporter commented 8 years ago
Copying GMail interface is usually a good idea.
In this case, I also suggest: shift+del to delete a blip (just like shift+enter 
to enter a new blip), which should avoid accidental deletes.

Original comment by stenyak on 19 Apr 2011 at 2:57

GoogleCodeExporter commented 8 years ago
That could work.  And it would feel natural to those of us who skip the 
trash/recycle bin when deleting files.

Original comment by zmy...@gmail.com on 19 Apr 2011 at 3:15

GoogleCodeExporter commented 8 years ago
As a UX principle, I agree that it's better to allow actions to occur without 
interruption, but provide subsequent steps to recover from mistakes (Undo).

However, undo is much more tricky in wave than GMail, because of liveness, OT, 
and the independent concurrency domains for multiple conversations in the same 
wave.  It is certainly doable though (Google Wave does it to some degree, with 
an UndoManager that's hooked up in many places).  There's also two kinds of 
undo (reset vs revert in git terminology), and decisions need to be made on 
which kind can be used where.

In Google Wave, we never enabled a keyboard shortcut for blip deletion for 
precisely this reason: there are modelling issues with undoing blip deletions, 
which is why we never added an Undo message, and without it, the damage of 
accidentally deleting a blip outweighed the convenience of having a single-key 
way to do it.

+1 for shift+del instead of del.  I also wouldn't object to removing the 
keyboard shortcut for deletion altogether.
I can do this patch (unless anyone else jumps in an does it first, including 
someone taking on a starter project).

Original comment by hearn...@google.com on 20 Apr 2011 at 1:21

GoogleCodeExporter commented 8 years ago
I'm willing to solve that but, should I implement the Undo system, change the 
key binding or both?

Original comment by marcelos...@gmail.com on 25 Apr 2011 at 9:07

GoogleCodeExporter commented 8 years ago
I don't know what kind of time you are able to devote to this, but from what 
has been said, I'd suggest to first start with replacing current shortcut 
(change it to 'shift+del'), and *then* take a look at the 'undo' funcionality.

Original comment by stenyak on 25 Apr 2011 at 9:52

GoogleCodeExporter commented 8 years ago
I agree, you should change the keyboard shortcut to Shift+Del first since that 
is relatively minor, but undo functionality would be event better.

Original comment by zmy...@gmail.com on 25 Apr 2011 at 11:28

GoogleCodeExporter commented 8 years ago
I haven't really worked with Wave's OT theory (just know the basics from 
watching some youtubes), but I wonder if Darcs' patch theory concepts could be 
of any help when applied to OTs, specially with regards to 'undo' functionality?
http://en.wikibooks.org/wiki/Understanding_Darcs/Patch_theory

Original comment by stenyak on 26 Apr 2011 at 6:05

GoogleCodeExporter commented 8 years ago
I'll be working on this issue. I already submitted a patch that fixes the 
problem with the delete key. Now a blip can only be deleted with the combo 
shift+delete.
The undo functionality seems to be a much larger issue, that could incorporate 
several other things such as adding or removing participants. Deleting blips 
without sequence keys, and so on.
My suggestion is to integrate it with the replay functionality that Google Wave 
still have.
What do you guys think?

Original comment by marcelos...@gmail.com on 26 Apr 2011 at 9:44