Hi,

On Sat, Oct 30, 2004 at 05:13:57PM -0700, [EMAIL PROTECTED] wrote:

> On Sat, 30 Oct 2004 14:42:42 +0200, "Jos Vos" <[EMAIL PROTECTED]> said:

> > What I want to achieve, is to be able to specify a multi-step page
> > selection.  For example, after a user has submitted a form (page1),
> > requesting to add an item to a shopping cart, these are the steps:
> > 
> > -  User input is validated.  If invalid, show page1 again.
> > 
> > -  User input is processed (step1).  If the item added is not
> >    on stock, page2 ("not on stock - proceed or not?") is shown.
> > 
> > -  User input is processed (step2).  The item is on stock and a
> >    confirmation is given to the user (page3).
> > 
> > I could give more complex examples, with even more choices, but
> > the above example shows the principle.

> OK, I I think maybe a more complex example is needed
> to demonstrate the problem you see.  That is for this example it 
> seems the pbm is really that you have extra pages.  i.e.  The user 
> should remain on the order page until the order is confirmed or 
> canceled.  The view of this single page takes care of reporting 
> invalid data, out of stock issues, and querying for confirmation.

Yes, I understand, but also in this simplified case multiple functions
have to be combined in one action pipeline: checking the input data,
checking the stock position, etc.

Another example of this particular problem: say you have a page (page1)
that lets the user specify a LDAP query:

-  Custom input validation has to be done, to see if this is a
   sensible request.  If not, page1 is displayed again.

-  If the request seems to be valid, the LDAP query is done:

   -  If the result is just one LDAP entry, page2 is displayed,
      with all the details of this entry.

   -  If it results in multiple entries, a selection page (page3)
      is displayed, where the user selects one entry to display
      in detail.

In one action pipeline, we have to do validation *and* (optionally)
do the LDAP query.  As the LDAP query action probably is used somewhere
else in the application, I guess the best way is to call a subpipeline
for this.  A more natural way would seem this (currently impossible)
recipe:

  <page id="page1" ...>
    <action when="/button = 'query'" action="page1-validate.xpl">
      <result when="/inputok = 'false'">
         ...
      </result>
    </action>
    <action when="/button = 'query'" action="ldapquery.xpl">
      <result page="page2" when="...">
         ...
      </result>
      <result page="page3" when="...">
         ...
      </result>
    </action>
  </page>

That is, if no result with a valid condition is found in an executed
action, the next action (with a valid condition) is executed, etc.
But this is not the way it currently works.

I'm just trying to get "the right feeling" to design applications
using Orbeon.

-- 
--    Jos Vos <[EMAIL PROTECTED]>
--    X/OS Experts in Open Systems BV   |   Phone: +31 20 6938364
--    Amsterdam, The Netherlands        |     Fax: +31 20 6948204


-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
_______________________________________________
orbeon-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/orbeon-user

Reply via email to