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

Reply via email to