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 -~----------~----~----~----~------~----~------~--~---