[richfaces-issues] [JBoss JIRA] Issue Comment Edited: (RF-10885) Using rich:progressBar on a page breaks f:ajax onevent

Adrian Meredith (JIRA) jira-events at lists.jboss.org
Thu Apr 14 06:46:34 EDT 2011


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

Adrian Meredith edited comment on RF-10885 at 4/14/11 6:46 AM:
---------------------------------------------------------------

Thanks for trying this so quickly, the page is too complex to show here (we have our own datatable component and modalwindow component ) I would have expected that to show the same symptoms.  I'll try it to.
In my program i have two composite components a datatable and a modal window. when progressbar is placed in the datatable the modalwindow no longer closes as onevent is never called.  Removing progress bar restores the functionality.

the save button looks like this
{code:xml} 
<h:commandButton style="float: right;" id="save">
	<f:ajax execute="#{cc.attrs.execute}" render="#{cc.attrs.render}"/>
	<f:ajax execute="@none" render="@none" oneerror="doValidateMessages"/>
	<f:ajax execute="@none" render="#{cc.attrs.update}" onevent="#{cc.attrs.onevent}"/>
</h:commandButton>

for the purposes of this bug lets say there are two js functions like below
<script type="text/javascript">
	function doValidateMessages(data) {
		alert('Onevent fired! '+data.status);
	}
	function doValidateMessages2() {
		alert('Onevent fired!');		
	}
</script>
{code}
when the save button is pressed I get 3 alerts for each status like i would expect however when I add progress bar, no alert appears at all.  In other words the contents of one composite component is breaking another!  but it i rename the onevent to doValidateMessages2() i get one alert (surely i should still get 3?).

Since my application already uses existing jquery I also have 
{code:xml} 
<script type="text/javascript">
				jQuery.noConflict();
			</script>
{code}
at the top of each page.


      was (Author: adriaaaaan):
    Thanks for trying this so quickly, the page is too complex to show here (we have our own datatable component and modalwindow component ) I would have expected that to show the same symptoms.  I'll try it to.
In my program i have two composite components a datatable and a modal window. when progressbar is placed in the datatable the modalwindow no longer closes as onevent is never called.  Removing progress bar restores the functionality.

the save button looks like this
{code:xml} 
<h:commandButton style="float: right;" id="save" rendered="#{(cc.attrs.noExit eq false) and !cc.attrs.javascriptSaveButton}" onclick="$(this).removeClass().addClass('ui-state-default ui-corner-all ui-button modalwindow_save ui-state-disabled');$(this).attr('disabled', true);" value="#{cc.attrs.saveButtonText}" action="#{cc.attrs.modaldatabean.save}" type="button" styleClass="modalwindow_save button ui-button ui-corner-all ui-state-default">
								<f:ajax execute="#{cc.attrs.execute}" render="#{cc.attrs.render}"/>
								<f:ajax execute="@none" render="@none" oneerror="doValidateMessages"/>
								<f:ajax execute="@none" render="#{cc.attrs.update}" onevent="#{cc.attrs.onevent}"/>
							</h:commandButton>

for the purposes of this bug lets say there are two js functions like below
<script type="text/javascript">
						function doValidateMessages(data) {
							alert('Onevent fired! '+data.status);
						}
						function doValidateMessages2() {
							alert('Onevent fired!');

								
						}
</script>
{code}
when the save button is pressed I get 3 alerts for each status like i would expect however when I add progress bar, no alert appears at all.  In other words the contents of one composite component is breaking another!  but it i rename the onevent to doValidateMessages2() i get one alert (surely i should still get 3?).

Since my application already uses existing jquery I also have 
{code:xml} 
<script type="text/javascript">
				jQuery.noConflict();
			</script>
{code}
at the top of each page.

  
> Using rich:progressBar on a page breaks f:ajax onevent
> ------------------------------------------------------
>
>                 Key: RF-10885
>                 URL: https://issues.jboss.org/browse/RF-10885
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: component-output
>    Affects Versions: 4.0.0.Final
>         Environment: glassfish 3.1 mojarra 2.1
>            Reporter: Adrian Meredith
>              Labels: backwardcompatibility, jsf2, richfaces4
>
> When using rich:progress bar on a page onevent no longer functions the same way.  When using mojarra onevent takes the name of a js function that takes one parameter (data).  After inserting a rich component on the page onevent now requires attributes breaking compatability with standard jsf (and introducing untold amount of unpredictable bugs).
> mojarra :
> <f:ajax   onevent="doValidateMessages"/>
> richfaces:
> <f:ajax  onevent="doValidateMessages()"/>
> This means i have to use diffent syntax depending on whether i'm using richfaces on a particular page!!  This is already a well established jsf2 application so rewriting it using the aforementioned workaround isn't very practical.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the richfaces-issues mailing list