strong undo

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

strong undo

Paul DeBruicker
Does anyone have a strategy for implementing strong undo in a Seaside app?  


Thanks

Paul
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: strong undo

Philippe Marschall
On Thu, Dec 12, 2013 at 8:09 PM, Paul DeBruicker <[hidden email]> wrote:
> Does anyone have a strategy for implementing strong undo in a Seaside app?

What is strong undo?

Cheers
Philippe
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: strong undo

Bob Arning-2
maybe something like (from Gimp):


Strong undo/redo

By pressing Shift+Ctrl+Z / Shift+Ctrl+Y it is now possible to undo a bunch of actions at one time. This is good for experimenting on something!


On 12/12/13 4:05 PM, Philippe Marschall wrote:
On Thu, Dec 12, 2013 at 8:09 PM, Paul DeBruicker [hidden email] wrote:
Does anyone have a strategy for implementing strong undo in a Seaside app?
What is strong undo?

Cheers
Philippe
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside



_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: strong undo

Paul DeBruicker


Something like that.  I don't know where to find a definition I can point to.  So to be less vague this is what I have in mind.  

As you both know the back button 'undoes' your navigation on regular links but can't undo a form submission or ajax requests that change things in the app.  I'd like to be able to offer a way to undo/redo those too, when appropriate.  To make experimenting and mistakes less costly for a user.  So that they do not have to remember what they changed, and when.    


Ideally the undo of the navigation and the undo of the app changes would be tied either to the back button or just a button on the page.  One canonical spot for 'undo-ing' things a user does. I know I can't undo things like sending emails, but I'd like to be able to say: if you spend a half hour experimenting on this you can get back to where you were exactly before you started.  


If it were a single user app I could probably get away with keeping a stack of model states for the user's whole model.  Since it is a  multi-user app that seems really complicated.  User A's temporary changes may or may not conflict with user B's permanent changes.  


Maybe, as a first step, what I need is to just let a user make a copy of their whole model and pretend there is a playground/walled garden/simulator where a they can do experiments, and then when they're done either let them adopt the copy as their new model or keep it to mess with later.  


Anyway, if you have any ideas I'd love to hear them.  


Thanks

Paul


Bob Arning-2 wrote
maybe something like (from Gimp):


*Strong undo/redo*

By pressing Shift+Ctrl+Z / Shift+Ctrl+Y it is now possible to undo a
bunch of actions at one time. This is good for experimenting on something!


On 12/12/13 4:05 PM, Philippe Marschall wrote:
> On Thu, Dec 12, 2013 at 8:09 PM, Paul DeBruicker <[hidden email]> wrote:
>> Does anyone have a strategy for implementing strong undo in a Seaside app?
> What is strong undo?
>
> Cheers
> Philippe
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>


_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: strong undo

Bob Arning-2
Figuring out what you really want seems like the first step...

- if you save successive model states, rolling them back could obliterate (part of) someone else's work. Is this really a problem - do two people work on the same thing?

- if you save deltas ("I added 2 to bucket 7", e.g.), then you could reverse that action leaving changes mage by others in place. But, did another user see what was in bucket 7 and make a big decision based on that? Perhaps in many applications, but not in some.

- if you give a user a copy of the world to play with, how would you merge those changes back into the trunk if that were desired in the end?

Maybe something like this would work:

- keep a list of modifications as user1 makes them
- undo as many of the modifications as user1 wishes
- if user2 ever reads or writes something that user1 has modified, then user1's undo stack is truncated at that point. Nothing that user2 has seen may be reverted.

Cheers,
Bob

On 12/12/13 5:38 PM, Paul DeBruicker wrote:

Something like that.  I don't know where to find a definition I can point
to.  So to be less vague this is what I have in mind.  

As you both know the back button 'undoes' your navigation on regular links
but can't undo a form submission or ajax requests that change things in the
app.  I'd like to be able to offer a way to undo/redo those too, when
appropriate.  To make experimenting and mistakes less costly for a user.  So
that they do not have to remember what they changed, and when.    


Ideally the undo of the navigation and the undo of the app changes would be
tied either to the back button or just a button on the page.  One canonical
spot for 'undo-ing' things a user does. I know I can't undo things like
sending emails, but I'd like to be able to say: if you spend a half hour
experimenting on this you can get back to where you were exactly before you
started.  


If it were a single user app I could probably get away with keeping a stack
of model states for the user's whole model.  Since it is a  multi-user app
that seems really complicated.  User A's temporary changes may or may not
conflict with user B's permanent changes.  


Maybe, as a first step, what I need is to just let a user make a copy of
their whole model and pretend there is a playground/walled garden/simulator
where a they can do experiments, and then when they're done either let them
adopt the copy as their new model or keep it to mess with later.  


Anyway, if you have any ideas I'd love to hear them.  


Thanks

Paul



Bob Arning-2 wrote
maybe something like (from Gimp):


*Strong undo/redo*

By pressing Shift+Ctrl+Z / Shift+Ctrl+Y it is now possible to undo a 
bunch of actions at one time. This is good for experimenting on something!


On 12/12/13 4:05 PM, Philippe Marschall wrote:
On Thu, Dec 12, 2013 at 8:09 PM, Paul DeBruicker &lt;

      
pdebruic@

      
&gt; wrote:
Does anyone have a strategy for implementing strong undo in a Seaside
app?
What is strong undo?

Cheers
Philippe
_______________________________________________
seaside mailing list


      
[hidden email]

      
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside


_______________________________________________
seaside mailing list

      
[hidden email]

      
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside




--
View this message in context: http://forum.world.st/strong-undo-tp4729692p4729742.html
Sent from the Seaside General mailing list archive at Nabble.com.
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside



_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: strong undo

Philippe Marschall
In reply to this post by Paul DeBruicker
On Thu, Dec 12, 2013 at 11:38 PM, Paul DeBruicker <[hidden email]> wrote:

>
>
> Something like that.  I don't know where to find a definition I can point
> to.  So to be less vague this is what I have in mind.
>
> As you both know the back button 'undoes' your navigation on regular links
> but can't undo a form submission or ajax requests that change things in the
> app.  I'd like to be able to offer a way to undo/redo those too, when
> appropriate.  To make experimenting and mistakes less costly for a user.  So
> that they do not have to remember what they changed, and when.
>
>
> Ideally the undo of the navigation and the undo of the app changes would be
> tied either to the back button or just a button on the page.  One canonical
> spot for 'undo-ing' things a user does. I know I can't undo things like
> sending emails, but I'd like to be able to say: if you spend a half hour
> experimenting on this you can get back to where you were exactly before you
> started.
>
>
> If it were a single user app I could probably get away with keeping a stack
> of model states for the user's whole model.  Since it is a  multi-user app
> that seems really complicated.  User A's temporary changes may or may not
> conflict with user B's permanent changes.
>
>
> Maybe, as a first step, what I need is to just let a user make a copy of
> their whole model and pretend there is a playground/walled garden/simulator
> where a they can do experiments, and then when they're done either let them
> adopt the copy as their new model or keep it to mess with later.
>
>
> Anyway, if you have any ideas I'd love to hear them.

So you would like to be able to undo a database insert for example?
Strictly speaking through #states you can make any object backtracked.
The messages sent to it are #snapshotCopy and #restoreFromSnapshot:.

Cheers
Philippe
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside