[
https://issues.jboss.org/browse/RF-11365?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12825876#comment-12825876
]
Dipali Pandya commented on RF-11365:
------------------------------------
I added a fix in richfaces.js to have it accept any prefix in front of the ID,
as outlined in the bug description. Seems to be okay so far. Is this fix going
to be officially available in a build anytime soon?
> onbeforedomupdate and oncomplete not working in Portlet environment
> -------------------------------------------------------------------
>
> Key: RF-11365
> URL: https://issues.jboss.org/browse/RF-11365
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 4.0.0.Final
> Reporter: Detlef Pleiss
> Fix For: 5-Future
>
>
> example page:
> {code}
> <ui:composition xmlns="http://www.w3.org/1999/xhtml"
> xmlns:ui="http://java.sun.com/jsf/facelets"
> xmlns:h="http://java.sun.com/jsf/html"
> xmlns:f="http://java.sun.com/jsf/core"
> xmlns:a4j="http://richfaces.org/a4j"
> xmlns:rich="http://richfaces.org/rich">
> <h:head/>
> <h:form>
> <h:panelGrid columns="2">
> <h:outputText value="Text:" />
> <h:inputText value="#{echoBean.text}" >
> <a4j:ajax event="keyup"
>
> onbeforesubmit="alert('beforesubmit')"
> onbegin="alert('begin')"
>
> onbeforedomupdate="alert('beforedomupdate')"
> oncomplete="alert('complete')"
>
> render="text,count" listener="#{echoBean.countListener}"/>
> </h:inputText>
> <h:outputText value="Echo:" />
> <h:outputText id="text" value="#{echoBean.text}" />
> <h:outputText value="Count:" />
> <h:outputText id="count" value="#{echoBean.count}" />
> </h:panelGrid>
> </h:form>
> </ui:composition>
> {code}
> The alerts for onbeforedomupdate and oncomplete do not appear in a portal
> environment; they do in a non-portal web environment.
> The Ajax XML response in a non portal web environment contains the tag
> <extension id="org.richfaces.extension"> with the Javascript code from the
> named attributes.
> But, in a portal environment the id gets prefixed like i.e. <extension
> id="A3331org.richfaces.extension">
> In fact Richfaces asks for this prefix in
> richfaces-core-api-4.0.0.Final-sources :
> org.richfaces.renderkit.util.CoreAjaxRendererUtils.java
> line 96 by calling
> facesContext.getExternalContext().encodeNamespace(EXTENSION_ID))
> In a Servlet environment this leaves EXTENSION_ID = "org.richfaces.extension"
> unchanged, but in a Portlet environment its function is to
> "Return the specified name, after prefixing it with a namespace that ensures
> that it will be unique within the context of a particular page" (quoted from
> Javadoc).
> Only, the Javascript meant to react on the extension tag is hardcoded to
> react on the ID "org.richfaces.extension" only without any prefix:
> META-INF/resources/richfaces.js line 333 :
> {code}
> var getExtensionResponseElement = function(responseXML) {
> return jQuery("partial-response
> extension#org\\.richfaces\\.extension", responseXML);
> };
> {code}
> So, in a Portlet environment the partial-response/extension is ignored due to
> the prefixed ID.
> A possible solution might be to have the Javascript accept any prefix in
> front of the ID, like:
> {code}
> var getExtensionResponseElement = function(responseXML) {
> return jQuery("partial-response
> extension[id$='org\\.richfaces\\.extension']", responseXML);
> };
> {code}
--
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
_______________________________________________
richfaces-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/richfaces-issues