[jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-906) Support redirect component for navigation out of conversational scope
Christian Bauer (JIRA)
jira-events at lists.jboss.org
Sat Feb 24 02:27:35 EST 2007
[ http://jira.jboss.com/jira/browse/JBSEAM-906?page=comments#action_12354182 ]
Christian Bauer commented on JBSEAM-906:
----------------------------------------
Tested, page parameters are not captured:
<page view-id="/docDisplay.xhtml" action="#{browser.prepare}">
<param name="nodeId" value="#{browser.nodeId}"/>
<navigation>
<rule if-outcome="editDoc">
<capture-current-view/>
<begin-conversation flush-mode="MANUAL"/>
<redirect view-id="/docEdit.xhtml">
<param name="docId" value="#{currentDocument.id}"/>
<param name="parentDirId" value="#{currentDirectory.id}"/>
</redirect>
</rule>
</page>
<page view-id="/docEdit.xhtml" login-required="true">
<navigation>
<rule if-outcome="cancel">
<end-conversation/>
<return-to-captured-view/>
</rule>
</navigation>
</page>
Click on EditDoc http://localhost:8080/wiki/docDisplay.seam?nodeId=10&actionOutcome=editDoc&cid=5:
08:16:33,838 DEBUG [Lifecycle] >>> Begin web request
08:16:33,838 DEBUG [Manager] Found conversation id in request parameter: 5
08:16:33,838 DEBUG [Manager] No stored conversation, or concurrent call to the stored conversation
08:16:33,839 DEBUG [AbstractSeamPhaseListener] After restoring conversation context: ConversationContext(6)
08:16:33,849 DEBUG [Manager] Beginning long-running conversation
08:16:33,849 DEBUG [Manager] redirecting to: /wiki/docEdit.seam?docId=10&parentDirId=8&cid=6&clr=true
...
Click on Cancel http://localhost:8080/wiki/docEdit.seam?actionOutcome=cancel&cid=6&clr=true:
08:17:04,362 DEBUG [Lifecycle] >>> Begin web request
08:17:04,362 DEBUG [Manager] Found conversation id in request parameter: 6
08:17:04,363 DEBUG [Manager] Restoring conversation with id: 6
08:17:04,363 DEBUG [AbstractSeamPhaseListener] After restoring conversation context: ConversationContext(6)
08:17:04,364 DEBUG [Manager] Ending long-running conversation
08:17:04,365 DEBUG [Manager] redirecting to: /wiki/docDisplay.seam?cid=6
08:17:04,367 DEBUG [Manager] Storing conversation state: 6
08:17:04,369 DEBUG [Lifecycle] <<< End web request
08:17:04,370 DEBUG [Lifecycle] >>> Begin web request
08:17:04,370 DEBUG [Manager] Found conversation id in request parameter: 6
08:17:04,370 DEBUG [Manager] Restoring conversation with id: 6
08:17:04,370 DEBUG [AbstractSeamPhaseListener] After restoring conversation context: ConversationContext(6)
...
The nodeId is gone.
> Support redirect component for navigation out of conversational scope
> ---------------------------------------------------------------------
>
> Key: JBSEAM-906
> URL: http://jira.jboss.com/jira/browse/JBSEAM-906
> Project: JBoss Seam
> Issue Type: Feature Request
> Components: Core
> Reporter: Christian Bauer
> Assigned To: Gavin King
> Priority: Minor
> Fix For: 1.1.8.GA
>
> Attachments: navigation-patch.diff, ReturnToCapturedViewNavigationHandler.java, ReturnToParentViewNavigationHandler.java
>
>
> It's about my favorite subject, the "history" or "cancel" button.
> Assume the following (RC == Root Conversation, NC == Nested Conversation):
> RC(1) -> NC(2) -> NC(3)
> I can render a Cancel button on each page in NC 2 and 3 with the action=#{conversation.endAndRedirect()} to get back to any parent NC or RC.
> I can not render a Cancel button on each page in RC, because there is no "parent view-id" we could redirect to. So my Cancel button on these pages has to call some logic I've written on my RC backing component.
> I propose to extend the Conversation.endAndRedirect() method with the following logic:
> - If called in a NC, do what it currently does.
> - If called in a RC, check if the 'redirect' component is present in RC, if yes, call 'redirect.execute()'
> If this would be available, I could completely control conversation navigation and the navigation history through nesting conversations (with s:link or pages.xml) and by ensuring that a RC has a prepared 'redirect' component when it is started. All Cancel buttons would be able to use action="#{conversation.endAndRedirect()}" and would either get the user "one up" in the conversation stack or "out" of conversational scope.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the seam-issues
mailing list