Hello
Do you have main_template.xml in your main-display-pipeline? Perhaps
is is enough to define your form template without continuation, like
<ft:form-template action="xxx" method="POST">. Also perhaps you don't
need any processing in flow.js after form.showForm("main-display-
pipeline", data).
Barbara
On 12 Nov 2014, at 17:22, Oliver Bienert wrote:
Hello Cocoon users,
I have created a cocoon 2.2 project. It uses cforms to present a
record
from an h2 database to the user. I use continuations and a page
redirect
to switch between records:
var form = new Form("cocoon://resource/internal/
main_definition.xml");
form.createBinding("cocoon://resource/internal/
main_binding.xml");
// Get data from database and update model
var bean = javaMain.fillBean(active);
// Load bean data into form
form.load(bean);
form.showForm("main-display-pipeline", data);
// After submit: Load form data into model
form.save(bean);
// Save bean to database
...
// Issue a http redirect from client
cocoon.sendPage("redirect");
In the sitemap I issue the redirect via redirect-to uri="..."
Works so far but I don't really feel this the right way to present
records to a user.
I mean I don't need a flow between pages so IMHO I don't need
continuation.
I found out about sending a form stateless by using sendForm.
When the form is submitted I could reattached data by
form.processForm(viewdata).
Now here I'm stuck. How do I create an appropriate viewData map? I
googled several hours, but to no avail.
I found a solution with javaflow, but that's not an option for me:
FormInstance form = new FormInstance("forms/
formdefinition.xml");
Form model = (Form) form.getModel();
FormContext formContext = new FormContext(getRequest(),
Locale.getDefault());
model.process(formContext);
How would I do that in Javascript?
I tried something along those lines:
function processForm() {
var javaMain = cocoon.getComponent("mainbean");
var form = new Form("cocoon://resource/internal/
main_definition.xml");
form.createBinding("cocoon://resource/internal/
main_binding.xml");
var request = cocoon.request;
var bean = javaMain.newBean();
form.processForm(request);
form.save(bean);
}
but get an error:
org.mozilla.javascript.EvaluatorException:
"servlet:org.apache.cocoon.forms.impl.servlet+:/resource/internal/
flow/javascript/Form.js", line 157: Java class
"org.apache.cocoon.environment.http.HttpRequest" has no public
instance field or method named "CocoonFormsInstance".
How is this supposed to work?
Regards Oliver
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@cocoon.apache.org
For additional commands, e-mail: users-h...@cocoon.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@cocoon.apache.org
For additional commands, e-mail: users-h...@cocoon.apache.org