[
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=ed...:
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&am...:
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