I do not know how this could be generalized for all apps. In the simple cases -- maybe. Consider the following scenarios that you would need to
handle:

* Change happens, the updated data affects the next 5 actions (via the
current user or another user(s)) and then the user requests an undo --
hard. Imagine a change such as a picklist item deletion -- where other users ordering the bundle that place orders after the fact have a bundle that is limited via the deletion. admin users goes woops and trys to undo
-- now how do you reconcile the state?

* Change happens from multiple sources creating a complex merge list of different fields -- "undoing" this in different orders or pieces may leave
the data state in a poor state.


Undo (or at least intelligent undo) is a very hard problem in all but the
simplist of shared applications.


Undo is not easy to implement when then is shared data (like in your examples). But when it's about a shared application letting multiple users manipulate their very own private data, IMHO it's definitely a manageable problem.
Rememberthemilk is a good example of this.

The OK or Cancel button is not there because of lazy programming practices, it is usually there because you are entering a state where a backout is too hard to do or just does not make sense because of the context. You may be better served just putting in undo actions in the places where the action
makes real sense and ignore a list apart's box top screaming.

I agree, not every action is undoable and the article in A List Apart goes a bit too far on usability and lacks about feasibility/ usefulness. But I still think a common infrastructure could help in some cases. Desktop apps have had this kind of functionality for years, yet it is not too common in web applications.

--
Matthieu Codron
[EMAIL PROTECTED]




_______________________________________________
List: Catalyst@lists.rawmode.org
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
Dev site: http://dev.catalyst.perl.org/

Reply via email to