[ 
https://issues.jboss.org/browse/RF-13108?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brian Leathem updated RF-13108:
-------------------------------

    Labels: a4j:ajax rich:calendar rich:message waiting_on_user  (was: a4j:ajax 
rich:calendar rich:message)

    
> rich:calendar nested a4j:ajax event not firing
> ----------------------------------------------
>
>                 Key: RF-13108
>                 URL: https://issues.jboss.org/browse/RF-13108
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: component-a4j-core, component-validators
>    Affects Versions: 4.3.2
>         Environment: jboss 7.1.3 richfaces 4.3.2.final, chrome
>            Reporter: nathan dennis
>              Labels: a4j:ajax, rich:calendar, rich:message, waiting_on_user
>
> nested a4j:ajax change event isn't functioning as expected.
> ajax event isn't always fired. after speaking with ppitonak it seemed as if 
> the order of the ajax with relation to the validators was import. however 
> after closer inspection (and may be a different problem), the value wasnt 
> making back to the bean even when the event was fired.
> {code:xml}
> <?xml version='1.0' encoding='UTF-8' ?>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
> <ui:composition xmlns="http://www.w3.org/1999/xhtml";
>       xmlns:h="http://java.sun.com/jsf/html";
>       xmlns:f="http://java.sun.com/jsf/core";
>       xmlns:ui="http://java.sun.com/jsf/facelets";
>       xmlns:c="http://java.sun.com/jsp/jstl/core";     
>       xmlns:a4j="http://richfaces.org/a4j";
>       xmlns:rich="http://richfaces.org/rich";  
>       template="/resources/scaffold/pageTemplate.xhtml">
>       <f:metadata>
>               <f:viewParam name="id" value="#{screeningBean.id}"/>
>       </f:metadata>
>       <ui:define name="main">
>               <h:form id="create">
>                       
>       <h:panelGrid columnClasses="label,component,required" columns="3">
>               <h:outputLabel for="startTimeOverride" value="Start Time 
> Override:"/>
>               <rich:calendar value="#{screeningBean.screening.beginTime}" 
> id="startTimeOverride"
>                     popup="true" datePattern="dd/M/yy hh:mm a" 
> required="true" 
>                     showApplyButton="true"  >
>                     <f:validateRequired />
>                     <a4j:ajax event="change"  bypassUpdates="#{true}"/>       
>                                                              
>                 </rich:calendar>
>               <rich:message for="startTimeOverride" ajaxRendered="true" />
>                 <h:outputLabel for="endTimeOverride" value="End Time 
> Override:" />
>               <rich:calendar value="#{screeningBean.screening.endTime}" 
> id="endTimeOverride"
>                     popup="true" datePattern="dd/M/yy hh:mm a"
>                     showApplyButton="true" >
>                     <f:validateRequired />
>                   <f:validator validatorId="dateRangeValidator" />    
>                   <rich:validator /> 
>                   <a4j:ajax event="change"  bypassUpdates="#{true}"/>         
>                                                      
>                 </rich:calendar>
>                 <rich:message for="endTimeOverride" ajaxRendered="true" />
>       </h:panelGrid>
>       <div class="buttons">
>               <a4j:commandButton value="Complete" 
>                       action="#{screeningBean.updateScreening(2)}" 
>                       execute="@form"
>                       onclick="this.disabled=true; var that = this; 
> setTimeout(function() that.disabled=false;},500);"  
>                       styleClass="btn btn-primary btn-primary-a4j"  />
>       </div>
>       </h:form>
> </ui:define>
> </ui:composition>
> {code}
> {code:title=DateRangeValidator.java}
> /**************************************************************
>  * Copyright (c) 2012 - 2013, Monarch, All rights reserved.
>  * 
>  * @author Nathan Dennis
>  * 
>  */
> package org.monarchnc.view.validators;
> import java.text.DateFormat;
> import java.text.SimpleDateFormat;
> import java.util.Date;
> import javax.faces.application.FacesMessage;
> import javax.faces.component.UIComponent;
> import javax.faces.component.UIInput;
> import javax.faces.context.FacesContext;
> import javax.faces.validator.FacesValidator;
> import javax.faces.validator.Validator;
> import javax.faces.validator.ValidatorException;
> import javax.persistence.EntityManager;
> import org.apache.deltaspike.core.api.provider.BeanProvider;
> import org.monarchnc.view.ScreeningBean;
> // TODO: Auto-generated Javadoc
> /**
>  * The Class DateRangeValidator.
>  */
> @FacesValidator("dateRangeValidator")
> public class DateRangeValidator implements Validator {
>       
>     
>     /* (non-Javadoc)
>      * @see 
> javax.faces.validator.Validator#validate(javax.faces.context.FacesContext, 
> javax.faces.component.UIComponent, java.lang.Object)f
>      */
>     public void validate(final FacesContext ctx, final UIComponent component, 
> final Object value) throws ValidatorException {
>                   
>               ScreeningBean screeningBean = 
> BeanProvider.getContextualReference(screeningBean.class, false);
>                       
>                       Date date =(Date) value; 
>                       if(screeningBean.getScreening().getBeginTime() != null 
> && date != null)
>                       
> if(!date.after(screeningBean.getScreening().getBeginTime())){
>                               throw new ValidatorException(new 
> FacesMessage(FacesMessage.SEVERITY_ERROR,"End Date must be after Start 
> Date!!.\n","End Date must be after Start Date!!\n"));
>                               
>                       }
>       
>     
>     }
> }
> {code}
> {code:title=ScreeningBean.java}
> @Named
> @Transactional
> @ConversationScoped
> public class ScreeningBean implements Serializable{
>       Screening screening = new Screening();
>       public Class<? extends ViewConfig> claim(){
>                if (this.conversation.isTransient())
>             {
>                this.conversation.begin();
>             }...
>          }
>       public Screening getScreening() {
>               return screening;
>       }
>       public void setScreening(Screening screening) {
>               this.screening = screening;
>       }
> }
> {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

Reply via email to