You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Jeremy Quinn <je...@apache.org> on 2006/11/12 16:50:51 UTC

Re: svn commit: r473974 - in /cocoon/trunk/blocks: cocoon-ajax/cocoon-ajax-impl/src/main/resources/org/apache/cocoon/ajax/resources/js/ cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/ cocoon-forms/cocoon-forms-impl/src/...

Hi All

On 12 Nov 2006, at 15:28, jeremy@apache.org wrote:

> URL: http://svn.apache.org/viewvc?view=rev&rev=473974
> Log:
> Adding support for Dojo's IframeIO to CForms.
> This allows forms with file-upload fields to be submitted as a  
> background AJAX process. Currently this is turned off for Safari  
> where is is not working.


I have added support for Dojo's IframeIO AJAX Transport to CForms in  
BRANCH_2_1_X.
This is to allow forms with file upload fields to be able to be  
submitted via AJAX.
This is implemented only for cforms that use JXMacro rendering  
pipelines.

I have tested this under Firefox, MSIE and Safari, AFAICS all samples  
that worked before the change still work. It is currently disabled in  
Safari as it does not work in the release version, however it does  
work in the nightly builds of Webkit, so hopefully it will work in  
Safari soon.

IframeIO and XMLHttp Transports do have some differences .....  
XMLHttp is completely asynchronous, IframeIO is not. Submit events in  
IframeIO get queued by Dojo as it can only handle one submit and  
response at a time, as it uses a hidden iFrame for the form.

I had a great deal of trouble getting BrowserUpdate to work reliably  
across platform and browser. I eventually had to resort to placing  
the update content inside a <textarea> and parsing it on the client.  
It looks and sounds clunky but it was the only technique I could get  
to work reliably.

While reworking the CFormsForm Widget (etc.) I was able to remove  
some functions from the CForms Libs and use functions that come with  
Dojo instead that have the same behaviour.

Another change I have made is to disable the form-control that  
submits the form, re-enabling it when the Request returns, to try to  
avoid double submits etc.


These changes need more testing !!!!

Please test Ajax and non-Ajax cforms, forms that use FormsTransformer  
as well as JXMacros.
Please look out for form controls that do not get re-enabled after  
the Request has returned.


enjoy

regards Jeremy