[JBoss JIRA] (RF-11427) rich:tab - actionListener
by Brian Leathem (JIRA)
[ https://issues.jboss.org/browse/RF-11427?page=com.atlassian.jira.plugin.s... ]
Brian Leathem commented on RF-11427:
------------------------------------
Yes, thanks [~Trims] for the pull request. The _immediate=true_ regression is described fairly well in the PR on github:
{quote}
This PR fixes the action and actionListenr attributes but breaks the functionality of attribute immediate.
With the fix, when immediate=true is set on tabPanel and user switches tab, all 6 JSF phases are executed but only restore view, apply request values and render response should be executed.
To reproduce do the following:
* git clone https://github.com/richfaces/richfaces-qa.git
* cd richfaces-qa
* git checkout 4.3.x
* mvn clean install -DskipTests
* mvn clean verify -P jbossas-managed-7-1 -Dtest=TestTabPanel#testImmediate
{quote}
If you need anymore clarification please feel free to ask.
> rich:tab - actionListener
> -------------------------
>
> Key: RF-11427
> URL: https://issues.jboss.org/browse/RF-11427
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-panels-layout-themes
> Affects Versions: 4.0.0.Final, 4.1.0.Milestone2, 4.2.3.CR1
> Environment: RichFaces 4.1.0-SNAPSHOT r.5debbf8981de1839984bdaa38b31f58ed028239d
> Metamer 4.1.0-SNAPSHOT r.22728
> Mojarra 2.1.2-FCS
> Apache Tomcat 7.0.16
> OpenJDK Runtime Environment 1.6.0_22-b22 @ Linux
> Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20100101 Firefox/6.0
> RichFaces 4.2.1-SNAPSHOT
> Metamer 4.2.1-SNAPSHOT
> Mojarra 2.1.7-jbossorg-1
> JBoss AS 7.1.1.Final
> Java(TM) SE Runtime Environment 1.6.0_26-b03 @ Linux
> Chrome 18.0.1025.168 @ Linux i686
> Reporter: Jan Papousek
> Labels: ci_issue
> Fix For: 5-Tracking
>
>
> It seems that the actionListener attribute doesn't work.
> # deploy Metamer and open http://localhost:8080/metamer/faces/components/richTab/simple.xhtml
> # open tab2
> # open tab1 (action and action listener are invoked)
> # open tab2
> # open tab1 (action and action listener are *NOT* invoked)
> # open tab1 (action and action listener are invoked)
--
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
10 years, 8 months
[JBoss JIRA] (RF-13592) a4j:push doesn't work after rendering
by Igor Bolshakov (JIRA)
[ https://issues.jboss.org/browse/RF-13592?page=com.atlassian.jira.plugin.s... ]
Igor Bolshakov updated RF-13592:
--------------------------------
Attachment: screenshot.png
localhost.har
a4j.log
web.xml
> a4j:push doesn't work after rendering
> -------------------------------------
>
> Key: RF-13592
> URL: https://issues.jboss.org/browse/RF-13592
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-push/poll
> Affects Versions: 4.3.5
> Environment: JBoss EAP 6.2
> Browser: Chrome 33.0.1750.154 and IE 8.0.7601.17514
> JSF 2.19, Richfaces 4.3.5
> Reporter: Igor Bolshakov
> Priority: Critical
> Attachments: a4j.log, localhost.har, screenshot.png, web.xml
>
>
> I use {{rendered}} attribute to start/stop a4j:push component in example below. After rendering of a4j:push element the handling of incoming push messages is broken. In my simple example I set alert to notify about recieved message (see attached screenshot).
> View xhtml code:
> {code:xml}<?xml version="1.0" encoding="ISO-8859-1"?>
> <ui:composition xmlns="http://www.w3.org/1999/xhtml"
> xmlns:a4j="http://richfaces.org/a4j"
> xmlns:h="http://java.sun.com/jsf/html"
> xmlns:ui="http://java.sun.com/jsf/facelets">
> <h:form>
> <a4j:outputPanel id="push-panel">
> <a4j:push address="TEST_ADDRESS" ondataavailable="alert('event.rf.data=' + event.rf.data)"
> rendered="#{testBean.enabled}"/>
> </a4j:outputPanel>
> <a4j:commandButton id="startBtn" value="Start Push" action="#{testBean.startPush}" render="push-panel"/>
> <a4j:commandButton id="stopBtn" value="Stop Push" action="#{testBean.stopPush}" render="push-panel"/>
> <a4j:commandButton id="sendMessage" value="Send Message" action="#{testBean.sendMessage}"/>
> </h:form>
> </ui:composition>{code}
> Backing bean class:
> {code}public class TestBean {
> private boolean enabled = false;
> public boolean isEnabled() {
> return enabled;
> }
> public void startPush() {
> enabled = true;
> }
> public void stopPush() {
> enabled = false;
> }
> public void sendMessage() throws MessageException {
> TopicsContext.lookup().publish(new TopicKey("TEST_ADDRESS"), "Hello World");
> }
> }{code}
> Configuration in web.xml (see attachment).
> Scenario:
> 1) Open page
> 2) Click "Start Push" button
> 3) Click "Send Message" button
> 4) Alert "event.rf.data=Hello World" is shown (see attached screenshot)
> 5) Click "Stop Push" button
> 6) Polling is closed (see localhost.har in attachment)
> 7) Click "Start Push" button
> 8) Polling is started (see localhost.har in attachment)
> 9) Click "Send Message" button
> 10) Message is recieved (see localhost.har in attachment)
> 11) No alert, no javascript error
> For more details I saved a4j:log output in a4j.log file.
--
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
10 years, 8 months
[JBoss JIRA] (RF-13592) a4j:push doesn't work after rendering
by Igor Bolshakov (JIRA)
Igor Bolshakov created RF-13592:
-----------------------------------
Summary: a4j:push doesn't work after rendering
Key: RF-13592
URL: https://issues.jboss.org/browse/RF-13592
Project: RichFaces
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: component-push/poll
Affects Versions: 4.3.5
Environment: JBoss EAP 6.2
Browser: Chrome 33.0.1750.154 and IE 8.0.7601.17514
JSF 2.19, Richfaces 4.3.5
Reporter: Igor Bolshakov
Priority: Critical
Attachments: a4j.log, localhost.har, screenshot.png, web.xml
I use {{rendered}} attribute to start/stop a4j:push component in example below. After rendering of a4j:push element the handling of incoming push messages is broken. In my simple example I set alert to notify about recieved message (see attached screenshot).
View xhtml code:
{code:xml}<?xml version="1.0" encoding="ISO-8859-1"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:form>
<a4j:outputPanel id="push-panel">
<a4j:push address="TEST_ADDRESS" ondataavailable="alert('event.rf.data=' + event.rf.data)"
rendered="#{testBean.enabled}"/>
</a4j:outputPanel>
<a4j:commandButton id="startBtn" value="Start Push" action="#{testBean.startPush}" render="push-panel"/>
<a4j:commandButton id="stopBtn" value="Stop Push" action="#{testBean.stopPush}" render="push-panel"/>
<a4j:commandButton id="sendMessage" value="Send Message" action="#{testBean.sendMessage}"/>
</h:form>
</ui:composition>{code}
Backing bean class:
{code}public class TestBean {
private boolean enabled = false;
public boolean isEnabled() {
return enabled;
}
public void startPush() {
enabled = true;
}
public void stopPush() {
enabled = false;
}
public void sendMessage() throws MessageException {
TopicsContext.lookup().publish(new TopicKey("TEST_ADDRESS"), "Hello World");
}
}{code}
Configuration in web.xml (see attachment).
Scenario:
1) Open page
2) Click "Start Push" button
3) Click "Send Message" button
4) Alert "event.rf.data=Hello World" is shown (see attached screenshot)
5) Click "Stop Push" button
6) Polling is closed (see localhost.har in attachment)
7) Click "Start Push" button
8) Polling is started (see localhost.har in attachment)
9) Click "Send Message" button
10) Message is recieved (see localhost.har in attachment)
11) No alert, no javascript error
For more details I saved a4j:log output in a4j.log file.
--
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
10 years, 8 months
[JBoss JIRA] (RF-13349) a4j:queue must be first child for rich:autocomplete
by Pavol Pitonak (JIRA)
[ https://issues.jboss.org/browse/RF-13349?page=com.atlassian.jira.plugin.s... ]
Pavol Pitonak updated RF-13349:
-------------------------------
Assignee: (was: Pavol Pitonak)
> a4j:queue must be first child for rich:autocomplete
> ---------------------------------------------------
>
> Key: RF-13349
> URL: https://issues.jboss.org/browse/RF-13349
> Project: RichFaces
> Issue Type: Feature Request
> Security Level: Public(Everyone can see)
> Affects Versions: 4.3.4
> Reporter: alexey plotnikov
> Labels: waiting_on_user
>
> All described here https://community.jboss.org/message/845845 but i'll repeat.
> In this example:
> {code}
> <rich:autocomplete mode="ajax" autocompleteMethod="#{autocomplete.autocompleteLegals}"
> minChars="0" var="s" fetchValue="#{s.realName}" id="legal-suggestion"
> autofill="false"
> onselectitem="autocompleteChangeLegal(event.target)" style="display: inline;"
> layout="table" value="#{autocomplete.legalName}"
> required="true">
> <h:column>
> <h:outputText style="display:none;" value="#{s.id}"/>
> <h:outputText style="display:none;" value="#{s.realName}"/>
> </h:column>
> <h:column>
> <h:outputText value="#{s.name}" escape="false"/>
> </h:column>
> <a4j:queue requestDelay="500" ignoreDupResponses="true" />
> </rich:autocomplete>
> {code}
> a4j:queue - is *ignored!*
> But here
> {code}
> <rich:autocomplete mode="ajax" autocompleteMethod="#{autocomplete.autocompleteLegals}"
> minChars="0" var="s" fetchValue="#{s.realName}" id="legal-suggestion"
> autofill="false"
> onselectitem="autocompleteChangeLegal(event.target)" style="display: inline;"
> layout="table" value="#{autocomplete.legalName}"
> required="true">
> <a4j:queue requestDelay="500" ignoreDupResponses="true" />
> <h:column>
> <h:outputText style="display:none;" value="#{s.id}"/>
> <h:outputText style="display:none;" value="#{s.realName}"/>
> </h:column>
> <h:column>
> <h:outputText value="#{s.name}" escape="false"/>
> </h:column>
> </rich:autocomplete>
> {code}
> a4j:queue *not ignored*. So a4j:queue must be first child for autocomplete.
> For another components a4j:queue can be any child(first or last).
> For example this code:
> {code}
> <h:selectOneMenu value="#{agentMenuMassList.menuProfile}">
> <s:selectItems noSelectionLabel="#{messages['pages.noSelect']}" value="#{agentMenuMassList.menuProfiles}" var="m" label="#{m.name}"/>
> <s:convertEntity/>
> <a4j:ajax event="change" render="editPanel,menuPanel" listener="#{agentMenuMassList.change}"/>
> <a4j:queue requestDelay="5000" />
> </h:selectOneMenu>
> {code}
> *not* ignoring a4j:queue
--
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
10 years, 8 months
[JBoss JIRA] (RF-13349) a4j:queue must be first child for rich:autocomplete
by Pavol Pitonak (JIRA)
[ https://issues.jboss.org/browse/RF-13349?page=com.atlassian.jira.plugin.s... ]
Pavol Pitonak resolved RF-13349.
--------------------------------
Resolution: Cannot Reproduce Bug
Closing because we cannot reproduce. Feel free to reopen as soon as you have information about how to reproduce.
> a4j:queue must be first child for rich:autocomplete
> ---------------------------------------------------
>
> Key: RF-13349
> URL: https://issues.jboss.org/browse/RF-13349
> Project: RichFaces
> Issue Type: Feature Request
> Security Level: Public(Everyone can see)
> Affects Versions: 4.3.4
> Reporter: alexey plotnikov
> Labels: waiting_on_user
>
> All described here https://community.jboss.org/message/845845 but i'll repeat.
> In this example:
> {code}
> <rich:autocomplete mode="ajax" autocompleteMethod="#{autocomplete.autocompleteLegals}"
> minChars="0" var="s" fetchValue="#{s.realName}" id="legal-suggestion"
> autofill="false"
> onselectitem="autocompleteChangeLegal(event.target)" style="display: inline;"
> layout="table" value="#{autocomplete.legalName}"
> required="true">
> <h:column>
> <h:outputText style="display:none;" value="#{s.id}"/>
> <h:outputText style="display:none;" value="#{s.realName}"/>
> </h:column>
> <h:column>
> <h:outputText value="#{s.name}" escape="false"/>
> </h:column>
> <a4j:queue requestDelay="500" ignoreDupResponses="true" />
> </rich:autocomplete>
> {code}
> a4j:queue - is *ignored!*
> But here
> {code}
> <rich:autocomplete mode="ajax" autocompleteMethod="#{autocomplete.autocompleteLegals}"
> minChars="0" var="s" fetchValue="#{s.realName}" id="legal-suggestion"
> autofill="false"
> onselectitem="autocompleteChangeLegal(event.target)" style="display: inline;"
> layout="table" value="#{autocomplete.legalName}"
> required="true">
> <a4j:queue requestDelay="500" ignoreDupResponses="true" />
> <h:column>
> <h:outputText style="display:none;" value="#{s.id}"/>
> <h:outputText style="display:none;" value="#{s.realName}"/>
> </h:column>
> <h:column>
> <h:outputText value="#{s.name}" escape="false"/>
> </h:column>
> </rich:autocomplete>
> {code}
> a4j:queue *not ignored*. So a4j:queue must be first child for autocomplete.
> For another components a4j:queue can be any child(first or last).
> For example this code:
> {code}
> <h:selectOneMenu value="#{agentMenuMassList.menuProfile}">
> <s:selectItems noSelectionLabel="#{messages['pages.noSelect']}" value="#{agentMenuMassList.menuProfiles}" var="m" label="#{m.name}"/>
> <s:convertEntity/>
> <a4j:ajax event="change" render="editPanel,menuPanel" listener="#{agentMenuMassList.change}"/>
> <a4j:queue requestDelay="5000" />
> </h:selectOneMenu>
> {code}
> *not* ignoring a4j:queue
--
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
10 years, 8 months
[JBoss JIRA] (RF-12031) rich:validator does not work after re render (ajax)
by Michael B (JIRA)
[ https://issues.jboss.org/browse/RF-12031?page=com.atlassian.jira.plugin.s... ]
Michael B edited comment on RF-12031 at 3/28/14 4:22 AM:
---------------------------------------------------------
Currently we are facing the same issue using RF 4.3.5.
We tried the workaround as described here, but have a few problems we'd like to share.
For inputText adding
<a4j:ajax event="blur" render="<input-id>" />
seems to work at first, but has some backdraws.
Adding this seems to produce 2 JS handlers to execute.The first one (onchange) fails due to the missing JS-function "av_....", while the other performs the validation correctly. (This can be verified when looking at the output of firebug for example.)
A bit ugly but somewhat OK. - However combining this workaround with <rich:focus preserve="true" /> inside the form leads to a validation error message showing for a moment and then disappearing again directly after. The validation message will only remain visible when defining the workaround with the additional limitRender="true" attribute and also adding the id of the message for this field to the render attribute.
Another problem is, that this workaround is only valid for inputText fields. Currently we are facing the same problem for example with the rich:calendar component having a rich:validator.
This is reproducable with the same configuration as shown in the description of this JIRA. - After the page was loaded via ajax re-render, perform a click on the select date button. Try to select a day. Normally the selected date is validated, the selector pop-up closes and the value is applied to the input field of the calendar. In this case the selector pop-up is not closed automatically. Again this problem is due to the missing JS-function "av_...." as can be seen also in firebug.
We've tried several of the ajax event handlers of the calendar component to find a similar workaround like the one for inputText, but with no success so far.
We still have to check that assumption, but I guess the same problem will occur for other field types like rich:select as well...
Our current project heavily relies on ajax re-rendering and using the rich:validator as bridge for client side validation and thus this issue is becoming a show-stopper for us.
Therefore, please re-open this issue! Any hint for finding a suitable workaround for other components besides inputText would also be greatly appreciated!
Update:
After a little more research I found an old JIRA from 2011
https://issues.jboss.org/browse/RF-10940
... as well as a discussion about what seems to be the problem
https://community.jboss.org/thread/171420
Since it looks as if the problem was fixed back then (?!) could this be re-appearing in RF 4.3.5 for some reason?
was (Author: michaelb80):
Currently we are facing the same issue using RF 4.3.5.
We tried the workaround as described here, but have a few problems we'd like to share.
For inputText adding
<a4j:ajax event="blur" render="<input-id>" />
seems to work at first, but has some backdraws.
Adding this seems to produce 2 JS handlers to execute.The first one (onchange) fails due to the missing JS-function "av_....", while the other performs the validation correctly. (This can be verified when looking at the output of firebug for example.)
A bit ugly but somewhat OK. - However combining this workaround with <rich:focus preserve="true" /> inside the form leads to a validation error message showing for a moment and then disappearing again directly after. The validation message will only remain visible when defining the workaround with the additional limitRender="true" attribute and also adding the id of the message for this field to the render attribute.
Another problem is, that this workaround is only valid for inputText fields. Currently we are facing the same problem for example with the rich:calendar component having a rich:validator.
This is reproducable with the same configuration as shown in the description of this JIRA. - After the page was loaded via ajax re-render, perform a click on the select date button. Try to select a day. Normally the selected date is validated, the selector pop-up closes and the value is applied to the input field of the calendar. In this case the selector pop-up is not closed automatically. Again this problem is due to the missing JS-function "av_...." as can be seen also in firebug.
We've tried several of the ajax event handlers of the calendar component to find a similar workaround like the one for inputText, but with no success so far.
We still have to check that assumption, but I guess the same problem will occur for other field types like rich:select as well...
Our current project heavily relies on ajax re-rendering and using the rich:validator as bridge for client side validation and thus this issue is becoming a show-stopper for us.
Therefore, please re-open this issue! Any hint for finding a suitable workaround for other components besides inputText would also be greatly appreciated!
> rich:validator does not work after re render (ajax)
> ---------------------------------------------------
>
> Key: RF-12031
> URL: https://issues.jboss.org/browse/RF-12031
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-validators
> Affects Versions: 4.2.0.Final
> Environment: browsers: Firefox, Chrome
> Reporter: Andries Ehlers
> Assignee: Lukáš Fryč
> Priority: Minor
>
> When you have a simple inputText component with rich:validator inside, validation works perfectly when you move focus away from the component - validation messages display, e.g:
> {code:xml|borderStyle=solid}
> <h:inputText id="mytest1" value="#{profileBean.profileUser.firstName}">
> <rich:validator/>
> </h:inputText>
> <rich:message for="mytest1"/>
> {code}
> If the above code resides in a panel, which is conditionally rendered, then <rich:validator> ceases to function when you re-render the panel with ajax, eg:
> {code:xml|borderStyle=solid}
> <h:form id="dummyForm" prependId="false">
> <h:commandButton value="Toggle" actionListener="#{profileBean.toggleRender}">
> <f:ajax execute="@form" render="@form"/>
> </h:commandButton>
> <!--This will toggle on/off as you click the button above-->
> <h:panelGroup layout="block" rendered="#{profileBean.mustRenderThePanel}">
> <br/>
> <h:inputText id="mytest1" value="#{profileBean.profileUser.firstName}">
> <rich:validator/> <!--this fails to work when you move focus away -->
> </h:inputText>
> <rich:message for="mytest1"/>
> </h:panelGroup>
> </h:form>
> {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
10 years, 8 months