Hi David,

Thanks for presenting your latest work on Wizard last night at the Bay
Area Scala Enthusiasts meetup. I enjoyed hearing about Wizard and have
a few comments that I wanted to share with you and the rest of the
Lift community. I know Wizard is very new and I'm only going by what I
learned last night, so please bear with me if I misunderstood
anything!

As I understand it a Wizard instance is composed of screens
('questions'? I forget the exact terminology), each of which can have
multiple inputs, each input having a prompt ('Name', 'Your mother or
father's name', etc) and multiple validation rules. User input is
saved each time the user hits the Submit (or Next, in your example)
button. User state is stored from screen to screen and can be rolled
backwards but not forward. This is analogous to checking out an older
revision in a version control system, with each submitted screen being
a revision, but then loosing all revisions since the checkout
(rebasing the HEAD I believe it's called in Git).

What I expected, and what I think many other people would expect, is
that going back and forward among screens does not change the Wizard
state but simply changes what portion of the questions and responses
the user sees. In this case each screen is a simple, reduced view of
the current state, rather than a state in itself.

To use an analogy, think of a Wizard instance as an (annoying)
adventure game and each screen as a dungeon room. Let's say I fight my
way through several rooms full of grues, only to reach a locked door.
I'm told that the switch to unlock the door is 2 rooms back. I go back
(ie the previous screen method is fired twice) and I throw the switch.
Unfortunately, Wizard has also rolled back the dungeon state two
revisions and the intermediate room and room with the door now have
fearsome grues in them again! (In fact, I think Wizard could be used
quite easily for adventure games like that. Cool! I'm reminded of my
time making games in HyperCard. =)

To give another example, let's say I have a Wizard representing an e-
commerce site and have the following screens: shopping cart -> name
and shipping address -> credit card and billing address ->
confirmation. If I get to the confirmation screen and see that I added
2 Widgets and only want to buy 1, I want to be able to go back to the
shopping cart screen to make my change without losing the addresses
and payment details I entered in the intermediate screens.

Am I describing Wizard correctly, and if so, why did you chose the
first method of operation over the second? Can the second mode be
added?

Thanks for all the great work and I'm really looking forward to using
Wizard!

Peter Robinett
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to