You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Andrew M <an...@jibeya.com> on 2004/11/19 04:28:44 UTC
Passing Javascript variable from CFORM definition file into Flowscript
Hi,
I have a login definition file which performs validation like so:
login.xml:
<fd:validation>
<fd:javascript>
var success = true;
var newUserReg = new Packages.test.User();
var username = widget.lookupWidget("username");
var password = widget.lookupWidget("password");
try {
var userObject = newUserReg.getUser(username, password);
success = true;
} catch (e) {
username.setValidationError(new
Packages.org.apache.cocoon.forms.validation.ValidationError("The
password, username combination does not exists. Please re-enter.",
false));
password.setValidationError(new
Packages.org.apache.cocoon.forms.validation.ValidationError("The
password, username combination does not exists. Please re-enter.",
false));
success = false;
}
return success;
</fd:javascript>
</fd:validation>
<fd:widgets>
<fd:field id="username" required="true">
<fd:label>Username</fd:label>
<fd:datatype base="string"/>
<fd:validation>
<fd:length min="5" max="20"/>
</fd:validation>
</fd:field>
<fd:field id="password" required="true">
<fd:label>Password</fd:label>
<fd:datatype base="string"/>
<fd:validation>
<fd:length min="5" max="20"/>
</fd:validation>
</fd:field>
</fd:widgets>
In my flowscript I do the following:
function login() {
var form = new Form("forms/login.xml");
//make sure form is filled in correctly
form.showForm("unprotected.xml");
var model = form.getModel();
var bizData = {"userObject" : model.userObject}
......
}
How do I get the variable userObject into my function login()? Is this
possible?
many thanks
Andrew
Re: Passing Javascript variable from CFORM definition file into Flowscript
Posted by Andrew M <an...@jibeya.com>.
Hell that was simple!
Re-building cocoon fixed the problem ;-)
regards
Andrew
On 19 Nov 2004, at 11:15, Andrew M wrote:
> Note:
>
> login_template.jx should actually be login_template.js (flowscript)
>
> Andrew
>
> On 19 Nov 2004, at 10:59, Andrew M wrote:
>
>> login_template.jx
>
>
Re: Passing Javascript variable from CFORM definition file into Flowscript
Posted by Andrew M <an...@jibeya.com>.
Note:
login_template.jx should actually be login_template.js (flowscript)
Andrew
On 19 Nov 2004, at 10:59, Andrew M wrote:
> login_template.jx
Re: Passing Javascript variable from CFORM definition file into Flowscript
Posted by Andrew M <an...@jibeya.com>.
Simple!! If only!
sitemap:
<map:match pattern="unprotected.xml">
<map:generate type="jx" src="jx/home-page.jx"/>
<map:transform type="forms"/>
<map:transform src="resources/forms-field-styling.xsl"/>
<map:transform type="cinclude"/>
<map:transform type="xsltc" src="style/home-page.xsl"/>
<map:call resource="serialize"/>
</map:match>
login.xml
<fd:validation>
<fd:javascript>
var success = true;
var newUserReg = new Packages.test.User();
var username = widget.lookupWidget("username");
var password = widget.lookupWidget("password");
var userGlobal = null;
try {
userObject = newUserReg.getUser(username, password);
cocoon.session.setAttribute("user", userObject);
success = true;
} catch (e) {
......
success = false;
}
return success;
</fd:javascript>
</fd:validation>
login_template.jx
var form = new Form("forms/login.xml");
form.showForm("unprotected.xml");
userGlobal = cocoon.session.getAttribute("user");
cocoon.sendPage("secure.xml", {"msg":msg, "userGlobal":userGlobal});
userGlobal is null at the sendPage stage. Why?
regards
Andrew
On 19 Nov 2004, at 07:11, Upayavira wrote:
> var user = cocoon.session.getAttribute("user");
Re: Passing Javascript variable from CFORM definition file into Flowscript
Posted by Upayavira <uv...@upaya.co.uk>.
Andrew M wrote:
> Hi,
> I have a login definition file which performs validation like so:
>
> login.xml:
>
> <fd:validation>
> <fd:javascript>
> var success = true;
> var newUserReg = new Packages.test.User();
> var username = widget.lookupWidget("username");
> var password = widget.lookupWidget("password");
>
>
> try {
> var userObject = newUserReg.getUser(username, password);
> success = true;
> } catch (e) {
> username.setValidationError(new
> Packages.org.apache.cocoon.forms.validation.ValidationError("The
> password, username combination does not exists. Please re-enter.",
> false));
> password.setValidationError(new
> Packages.org.apache.cocoon.forms.validation.ValidationError("The
> password, username combination does not exists. Please re-enter.",
> false));
> success = false;
> }
>
> return success;
> </fd:javascript>
> </fd:validation>
>
>
> <fd:widgets>
> <fd:field id="username" required="true">
> <fd:label>Username</fd:label>
> <fd:datatype base="string"/>
> <fd:validation>
> <fd:length min="5" max="20"/>
> </fd:validation>
> </fd:field>
>
> <fd:field id="password" required="true">
> <fd:label>Password</fd:label>
> <fd:datatype base="string"/>
> <fd:validation>
> <fd:length min="5" max="20"/>
> </fd:validation>
> </fd:field>
> </fd:widgets>
>
> In my flowscript I do the following:
>
> function login() {
> var form = new Form("forms/login.xml");
>
>
> //make sure form is filled in correctly
> form.showForm("unprotected.xml");
> var model = form.getModel();
> var bizData = {"userObject" : model.userObject}
> ......
> }
>
> How do I get the variable userObject into my function login()? Is this
> possible?
>
Stick it in the session:
cocoon.session.setAttribute("user", userObject);
Then, every time you need it you can get it out of the session:
var user = cocoon.session.getAttribute("user");
Too simple?
Regards, Upayavira
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org