https://issues.apache.org/bugzilla/show_bug.cgi?id=54191
Bug ID: 54191 Summary: TomEE 1.5+ SNAPSHOT struggling with PrimeFaces p:calendar readonlyInput="#{someEL ? 'true' : 'false'}" Product: Tomcat 7 Version: 7.0.32 Hardware: PC OS: Windows Vista Status: NEW Severity: normal Priority: P2 Component: Catalina Assignee: dev@tomcat.apache.org Reporter: smithh032...@gmail.com Classification: Unclassified Overview: After discussing this with user community, it is believed that TomEE is struggling with the following xhtml post/after AJAX submit (and during AJAX render/update): p:calendar readonlyInput="#{pf_usersController.loggedInViaIpad == 'Y' ? 'true' : 'false'}" 1. readonlyInput="..." is a property of PrimeFaces' p:calendar component. 2. To meet a business requirement, I decided to populate this attribute via EL 3. After AJAX submit (and render), p:calendar loses its p:calendar client-side attributes/behavior; an inputText is rendered only 4. This EL works as designed (and without issues) on Glassfish 3.1.2.2 and MyFaces Core 2.1.9. Steps to Reproduce: 1. Add EL (above) to the readonlyInput="..." attribute of PrimeFaces p:calendar component 2. Select a date via the p:calendar component after xhtml page is rendered in the browser; AJAX submit is triggered 3. Repeat step # 2 above until p:calendar is rendered WITHOUT (jQuery datepicker) 'button' and calendar popup/dropdown Actual Results: Sporadically, p:calendar is rendered WITHOUT (jQuery datepicker) 'button' and calendar popup/dropdown Expected Results: p:calendar ALWAYS rendered WITH (jQuery datepicker) 'button' and calendar popup/dropdown Build Date & Platform: Date and platform of the build in which you first encountered the bug. INFO: Starting Servlet Engine: Apache Tomcat (TomEE)/7.0.32 apache-tomee-1.5.1-20121117.041542-74-plus.zip Additional Builds and Platforms: PrimeFaces 3.5 SNAPSHOT, JUEL 2.2.5, OmniFaces 1.3 SNAPSHOT Additional Information: Screen captures: 1. BEFORE AJAX submit: http://imageshack.us/photo/my-images/163/20121121ajaxcalendariss.jpg/ 2. AFTER AJAX submit: http://imageshack.us/photo/my-images/600/20121121ajaxcalendariss.jpg/ ORIGINAL xhtml below: <p:calendar id="filterTripDateFrom" value="#{pf_ordersController.filterTripDateFrom}" mode="popup" showOn="button" readonlyInput="#{pf_usersController.loggedInViaIpad == 'Y' ? 'true' : 'false'}" navigator="true" effect="fadeIn" pattern="MM/dd/yyyy" size="10"> <p:ajax partialSubmit="false" event="dateSelect" listener="#{pf_ordersController.filterTripDateFromSelected}" update=":ordersBrowseForm:ordersDataTable :ordersBrowseForm:formMessages :ordersBrowseForm:_ajax_status" /> </p:calendar> <h:outputText value="To:" /> <p:calendar id="filterTripDateTo" value="#{pf_ordersController.filterTripDateTo}" mode="popup" showOn="button" readonlyInput="#{pf_usersController.loggedInViaIpad == 'Y' ? 'true' : 'false'}" navigator="true" effect="fadeIn" pattern="MM/dd/yyyy" size="10"> <p:ajax partialSubmit="false" event="dateSelect" listener="#{pf_ordersController.filterTripDateToSelected}" update=":ordersBrowseForm:ordersDataTable :ordersBrowseForm:formMessages :ordersBrowseForm:_ajax_status" /> </p:calendar> WORKAROUND: use rendered="#{...}" to render appropriate xhtml content (see xhtml below) <h:outputText value="From:" /> <p:calendar id="filterTripDateFrom" value="#{pf_ordersController.filterTripDateFrom}" mode="popup" showOn="button" navigator="true" effect="fadeIn" pattern="MM/dd/yyyy" size="10" rendered="#{pf_usersController.loggedInViaIpad == 'N'}"> <p:ajax partialSubmit="false" event="dateSelect" listener="#{pf_ordersController.filterTripDateFromSelected}" update=":ordersBrowseForm:ordersDataTable :ordersBrowseForm:formMessages :ordersBrowseForm:_ajax_status" /> </p:calendar> <p:calendar id="filterTripDateFromOnIpad" value="#{pf_ordersController.filterTripDateFrom}" mode="popup" showOn="button" readonlyInput="true" navigator="true" effect="fadeIn" pattern="MM/dd/yyyy" size="10" rendered="#{pf_usersController.loggedInViaIpad == 'Y'}"> <p:ajax partialSubmit="false" event="dateSelect" listener="#{pf_ordersController.filterTripDateFromSelected}" update=":ordersBrowseForm:ordersDataTable :ordersBrowseForm:formMessages :ordersBrowseForm:_ajax_status" /> </p:calendar> <h:outputText value="To:" /> <p:calendar id="filterTripDateTo" value="#{pf_ordersController.filterTripDateTo}" mode="popup" showOn="button" navigator="true" effect="fadeIn" pattern="MM/dd/yyyy" size="10" rendered="#{pf_usersController.loggedInViaIpad == 'N'}"> <p:ajax partialSubmit="false" event="dateSelect" listener="#{pf_ordersController.filterTripDateToSelected}" update=":ordersBrowseForm:ordersDataTable :ordersBrowseForm:formMessages :ordersBrowseForm:_ajax_status" /> </p:calendar> <p:calendar id="filterTripDateToOnIpad" value="#{pf_ordersController.filterTripDateTo}" mode="popup" showOn="button" readonlyInput="true" navigator="true" effect="fadeIn" pattern="MM/dd/yyyy" size="10" rendered="#{pf_usersController.loggedInViaIpad == 'Y'}"> -- You are receiving this mail because: You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org