• Like
  • Save
Undo in a Web Application
Upcoming SlideShare
Loading in...5

Undo in a Web Application






Total Views
Views on SlideShare
Embed Views



1 Embed 3

http://www.slideshare.net 3



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    Undo in a Web Application Undo in a Web Application Presentation Transcript

    • Undo in a Web Application Chasen Le Hara BarCamp LA-4 November 4, 2007
    • The Problem • Accidents happen • Habits happen • Data loss sucks http://flickr.com/photos/wvs/141235163/
    • Is undo a solution? • Undo can recover deleted data • Undo can reverse changes made to data • Undo can make a user less fearful
    • How should a user interact with undo?
    • The back button? • Used for going to the previous page • Back button is for pages, not state • Wonʼt work (easily) with AJAX • Not readily apparent to the user
    • A proprietary interface • Control over when the option appears to users • In line with existing instances of undo
    • Undoʼs Scope
    • What should be undoable? • Not all actions can be undone • Purpose is to recover past data • Delete and edit actions should be undoable
    • How many actions should be undoable? • No sense in storing undo actions that will never be undone • User forgets about action eventually • Data must be deleted sometime
    • When should the undo data be deleted? • Never is (almost always) not an option • My pick: signing out • A user is not likely to want to recover data from a previous sign-in session
    • Implementing Undo
    • Database design • Make a table where old data can be stored and recovered through undo • Focus on the old data, date/time, and metadata about the undo
    • Backend design • Pair every delete/edit action with an undo action entry in the undo table • Get a copy of the old data into the undo table before deleting/editing • When a user undoes an action, use the old data for an insert or update
    • User chooses to delete data Data table Deleted data Undo table User realizes they deleted the wrong data Data table Deleted data Undo table The deletion is undone
    • Other considerations • Delete linked data when the undo action is deleted • Think about how data affects other data • Expose undo metadata through an API, not the old data
    • Demonstration
    • Thanks!
    • Questions?