You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Bart Molenkamp <b....@bizzdesign.nl> on 2005/05/09 17:37:13 UTC
[CForms] having more control over showing/processing a form
Hi all,
Currently, in flowscript, you display a form by calling
form.showForm(uri). This function loops until the form is successfully
processed. There is, as far as I can see, no way to get between there.
I wonder if it would be useful to define two more functions in Form.js,
that allow me to have better control over displaying/processing a form.
E.g. something like:
var form = new Form("form.xml");
...
var finished = false;
do {
form.showPage("form-template.xml"); // show the form only once.
if (user clicked some link) {
...
// dome something else
} else {
finished = form.process(); // process the form only once.
}
} while (!finished);
In this case, I do the looping that is otherwise done in the
form.showForm() function. But now I have more control over the form
flow. And, form.showForm() still exists and can be built using the above
two new methods.
I can make this change. Would it be valuable addition for CForms, or
not?
Thanks,
Bart.
Re: [CForms] having more control over showing/processing a form
Posted by Sylvain Wallez <sy...@apache.org>.
Bart Molenkamp wrote:
>Hi all,
>
>Currently, in flowscript, you display a form by calling
>form.showForm(uri). This function loops until the form is successfully
>processed. There is, as far as I can see, no way to get between there.
>
>I wonder if it would be useful to define two more functions in Form.js,
>that allow me to have better control over displaying/processing a form.
>E.g. something like:
>
>var form = new Form("form.xml");
>
>...
>
>var finished = false;
>do {
> form.showPage("form-template.xml"); // show the form only once.
>
> if (user clicked some link) {
> ...
> // dome something else
> } else {
> finished = form.process(); // process the form only once.
> }
>} while (!finished);
>
>In this case, I do the looping that is otherwise done in the
>form.showForm() function. But now I have more control over the form
>flow. And, form.showForm() still exists and can be built using the above
>two new methods.
>
>I can make this change. Would it be valuable addition for CForms, or
>not?
>
>
You can already to this without having to insert some code within the
showForm loop (which BTW is no more a loop in 2.1.7): you can place an
<fd:submit validate="false"> that will exit the shorForm function.
The corresponding flowscript could then look like:
var redisplayForm = true;
while(redisplayForm) {
form.showForm();
switch(form.submitId) {
case "details":
showDetails();
break;
case "create":
createNew();
break;
case "cart":
redisplayForm = false;
showCart();
break;
case "ok":
redisplayForm = false;
processForm(form);
break;
}
}
Does it answer your need?
Sylvain
--
Sylvain Wallez Anyware Technologies
http://apache.org/~sylvain http://anyware-tech.com
Apache Software Foundation Member Research & Technology Director