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