[richfaces-issues] [JBoss JIRA] (RF-13216) PoupPanel doesn't disappear when rendered="false" and rerender it.

Brian Leathem (JIRA) jira-events at lists.jboss.org
Thu Sep 26 11:42:02 EDT 2013


    [ https://issues.jboss.org/browse/RF-13216?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12807161#comment-12807161 ] 

Brian Leathem edited comment on RF-13216 at 9/26/13 11:40 AM:
--------------------------------------------------------------

additional problem:
domElementAttachment="body" will break the ajax actions of the "outer" form.
consider the following example:

{code}
<h:form>
  ...
  <rich:popupPanel>
    <h:form>
       <!-- local form needed for actions if we use default behaviour and move the panel in DOM -->
       ...
    </h:form>
  </rich:popupPanel
  ...

  <a4j:commandbutton action="test.action()"/>
</h:form>
{code}

submit the commandButton will not work, because the DOM of the outer form now contains two hidden fields of "javax.faces.encodedURL" and the javascript code to fetch the submit-url  (jsf.js) will fail in this scenario.

                
      was (Author: nias):
    additional problem:
domElementAttachment="body" will break the ajax actions of the "outer" form.
consider the following example:

<h:form>
  ...
  <rich:popupPanel>
    <h:form>
       <!-- local form needed for actions if we use default behaviour and move the panel in DOM -->
       ...
    </h:form>
  </rich:popupPanel
  ...

  <a4j:commandbutton action="test.action()"/>
</h:form>

submit the commandButton will not work, because the DOM of the outer form now contains two hidden fields of "javax.faces.encodedURL" and the javascript code to fetch the submit-url  (jsf.js) will fail in this scenario.

                  
> PoupPanel doesn't disappear when rendered="false" and rerender it.
> ------------------------------------------------------------------
>
>                 Key: RF-13216
>                 URL: https://issues.jboss.org/browse/RF-13216
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: component-output
>    Affects Versions: 4.3.3
>            Reporter: Takayuki Konishi
>         Attachments: rf3_3_4-modalpanel.zip, rf4_3_3-popuppanel.zip
>
>
> If you use the richfaces popupPanel in the default  domElementAttachment="body" mode it will not disappear under specific conditions.
> {code:xml} 
>     <h:body title="page 1">
>         <a4j:outputPanel id="myPanel">
>             <rich:popupPanel domElementAttachment="body" show="true" rendered="#{test.showPopup}">
>                 <h:form>
>                     <a4j:commandButton action="#{test.switchPopup()}" value="switch off" render="myPanel"/>
>                 </h:form>
>             </rich:popupPanel>
>             <h:form>
>                 <a4j:commandButton action="#{test.switchPopup()}" value="switch on" render="myPanel"/>
>             </h:form>
>         </a4j:outputPanel>
>     </h:body>
> {code} 
> In Richfaces 3.3.x, on the other hand, there was a component cleanup system ({{memory.js _cleanComponentNodes}}) which was responsible to remove components after ajax calls if the component was removed from the current view. 
> Therefore the above example (revert {{popupPanel}} to {{modalPanel}}) works in RF3.3.4.Final.
> Note:
> In case {{domElementAttachment="parent"}}, it will show [the other JSF2 bug|https://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-790] where the view state was lost, therefore you must click the action button twice to really call the function.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the richfaces-issues mailing list