Form.js overwrites the CFormsInstance attribute
-----------------------------------------------

         Key: COCOON-1720
         URL: http://issues.apache.org/jira/browse/COCOON-1720
     Project: Cocoon
        Type: Bug
  Components: Blocks: Forms  
    Versions: 2.1.9-dev (current SVN)    
    Reporter: Jean-Baptiste Quenot
 Attachments: 20051214-Form.js

In Form.js the function showForm() stores the form in an attribute of the 
viewdata (the optional JS object passed by the user) called CFormsInstance .  
When invoking showForm() on two different forms but with the same viewdata, 
Form.js overwrites the attribute in viewdata.  When resuming the continuation 
of the first form, an error occurs because the second form is referenced in the 
viewdata, and of course it doesn't have the same set of widgets.

In other words: when the flow attributes are shared across multiple showForm(), 
Form.js overwrites the CFormsInstance attribute, which causes failure when 
reactivating the continuation of a previous screen.

Please see attached patch: the solution is to make a copy of the JS object.

*** There's also an improvement possible in Form.js provided in the same patch: 
to add a sendForm() function that does the same as showForm() except that no 
continuation is produced, to simplify development when no continuation is 
needed, and to reduce memory usage. ***

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira