[ http://issues.apache.org/jira/browse/COCOON-1963?page=all ]

Alexander Klimetschek updated COCOON-1963:
------------------------------------------

    Attachment: RedirectTransformer.java

The RedirectTransformer with a different package name. Should IMHO go into 
cocoon ajax, just next to the BrowserUpdateTransformer.

> Add a redirect action to the browser update handler
> ---------------------------------------------------
>
>                 Key: COCOON-1963
>                 URL: http://issues.apache.org/jira/browse/COCOON-1963
>             Project: Cocoon
>          Issue Type: New Feature
>          Components: Blocks: Ajax
>    Affects Versions: 2.2-dev (Current SVN), 2.1.10-dev (current SVN)
>            Reporter: Alexander Klimetschek
>         Attachments: BUHandler.js, RedirectTransformer.java
>
>
> In some situations you want to redirect the browser to a different page 
> inside a cforms action, eg. you have a REST-style interface and create 
> something under the URL /new (which shows a form to enter your new data) and 
> on save you want to redirect the user to a page where that new data is stored 
> (e.g. /foobar42). To do so in an ajax-environment, where the save action will 
> be answered with a browser-update XML snippet, you need a separate action in 
> the browser update handler. This patch adds the handling of a simple 
> "redirect" action to the BUHandler.js:
>     <bu:document>
>         <bu:redirect uri="foobar42" />
>     </bu:document>
> If you want to have a fallback solution for non-AJAX cases, you need to 
> trigger a normal HTTP redirect from your pipeline. This must happen when this 
> bu:redirect is inside the XML stream, otherwise all content should be 
> serialized to the browser. That functionality is provided by the attached 
> RedirectTransformer. The usage would be like:
>     <select type="ajax-request">
>         <when test="false">
>             <transform type="redirect" />
>         </when>
>     </select>
> The server-side javascript snippet for the save action should look like (form 
> is the Form object and documentID="foobar42"):
>     if (newDocument) {
>         form.getWidget().endProcessing(false);
>         cocoon.redirectTo("cocoon:/redirectTo/" + documentID);
>     }
> There should be a pipeline that matches "/redirectTo/*" and that serves the 
> bu:document like above (eg. via a jx template to insert the documentID).

-- 
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

        

Reply via email to