cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Simone Gianni (JIRA)" <>
Subject [jira] Updated: (COCOON-1804) Javascript FOM_SCOPE issue when using Java as the flow engine - ReferenceError: "cocoon" is not defined
Date Wed, 29 Mar 2006 12:09:27 GMT
     [ ]

Simone Gianni updated COCOON-1804:

    Attachment: javaflow-fomcocoon.diff

This patch solves the problem, also if not perfect I don't think it's so easy to do much more.

What i've done is this :
- Created a new class FOM_SimpleCocoon
... It's a javascript host object
... Exposes request, response, session and context
... It does not (yet?) exposes log and parameters
... Does not have (obviously) the methods of the FOM_Cocoon object like sendPage etc..
- In JavascriptHelper, when a function is called :
... If there is not already a scope created by flowscript, getRootScope is called.
... I added the object model as a parameter of getRootScope.
... If an object model is specified, it's used to create a new instance of FOM_SimpleCocoon
... This instance is placed in a new scope, with the name "cocoon"
... The javascript function is explicity applied to this new scope

This way, the difference between a javascript snippet in a definition, wether using flowscript
or javaflow, is smaller, since cocoon.request, cocoon.session, cocoon.response and cocoon.context
are now available, and I don't think much more is needed. It would be nice to also have log
and parameters, just to be more compatible with the complete FOM_Cocoon, but since i don't
think they can be obtained from an ObjectModel, they should be added as new parameters in
all the JavascripHelper calls.

> Javascript FOM_SCOPE issue when using Java as the flow engine - ReferenceError: "cocoon"
is not defined
> -------------------------------------------------------------------------------------------------------
>          Key: COCOON-1804
>          URL:
>      Project: Cocoon
>         Type: Bug
>   Components: Blocks: Java Flow
>     Versions: 2.1.8
>     Reporter: Andrew Madu
>     Priority: Blocker
>  Attachments: javaflow-fomcocoon.diff
> I have created a  java flow class which does the following:
> //Load in validation file
> FormInstance form = new FormInstance("forms/login.xml");
> My login map (snippet) is as follows:
> 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 checkUserTest = newUserReg.getUser(username.value, password.value);
>                 if (checkUserTest != null) {
>                     cocoon.session.setAttribute("user", checkUserTest);
>                     success = true;
>                 }else{
>                     username.setValidationError(new,
>                     password.setValidationError(new"The
password, username combination does not exist. Please enter another one.", false));
>                     success = false;
>                 }
>             } catch (e) {
>                     username.setValidationError(new,
>                     password.setValidationError(new"e.",
>                     success = false;
>             }
>             return success;
>         </fd:javascript>
>     </fd:validation>
> I am getting an error message when the line 'cocoon.session.setAttribute("user", checkUserTest)'
is hit.:
> ReferenceError: "cocoon" is not defined
> What is the issue here, can I create a session object from within form validation/javascript
in another way?
> Andrew

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

View raw message