ICEfaces
  1. ICEfaces
  2. ICE-10156

dateTimeEntry popup remains after dateSelect event

    Details

    • Assignee Priority:
      P2
    • Support Case References:
    • Workaround Exists:
      Yes
    • Workaround Description:
      Hide
      - use 'button' as the popup trigger
      - avoid including the dateTimeEntry in the DOM diff via page-level changes
      - do not use the dateSelect event but use another component to submit the selected date value (which is used in the showcase).
      Show
      - use 'button' as the popup trigger - avoid including the dateTimeEntry in the DOM diff via page-level changes - do not use the dateSelect event but use another component to submit the selected date value (which is used in the showcase).

      Description

      The dateTimeEntry calendar popup will pop back up after selecting a date when an <ace:ajax> dateSelect event is used and the resulting DOM update includes the dateTimeEntry. Presumably this is because ICEfaces resets the current focus to the input field which re-triggers the popup after the DOM update is applied.

      It would be preferable for the component to track when a focus event is the result of a DOM update after a dateSelect and bypass the calendar popup, which is confusing to users.

        Activity

        Hide
        Philip Breau added a comment -

        Steps to reproduce after deploy:

        • go to /icefaces-test/calendar-popup-issue.jsf
        • select a date

        Expected behavior:

        • the selected date should be submitted to the server and the should be printed beside the calendar component, and the popup should remain dismissed.

        Actual behavior:

        • the selected date is submitted to the server, the selected date is printed beside the calendar component, but the calendar popup comes back up
        Show
        Philip Breau added a comment - Steps to reproduce after deploy: go to /icefaces-test/calendar-popup-issue.jsf select a date Expected behavior: the selected date should be submitted to the server and the should be printed beside the calendar component, and the popup should remain dismissed. Actual behavior: the selected date is submitted to the server, the selected date is printed beside the calendar component, but the calendar popup comes back up
        Hide
        Mircea Toma added a comment -

        Delayed registration of 'onfocus' callback during initialization of Calendar JS object to avoid re-open of popup when focus retention re-applies focus on the input element.

        Show
        Mircea Toma added a comment - Delayed registration of 'onfocus' callback during initialization of Calendar JS object to avoid re-open of popup when focus retention re-applies focus on the input element.
        Hide
        Carmen Cristurean added a comment -

        Testing with 3.3 EE Maintenance branch r43557/ 4.0 trunk r43553 (Chrome39, IE10, IE11, FF33):
        The initial issue is resolved. However trying to re-open the dateTimeEntry popup for a new date selection fails (all browsers).

        Steps:

        • go to /icefaces-test/calendar-popup-issue.jsf
        • select a date -> the selected date is submitted to the server, the selected date is printed beside the calendar component, and the calendar remains closed.
        • click inside the dateTimeEntry component to open up the calendar for a new selection -> this step fails.
        • click on page outside the dateTimeEntry, then click again inside the dateTimeEntry -> IF 4.0 trunk only: calendar popup opens up for selection.
          EE 3.3.maintenance: calendar popup does not open up, and a JS error is logged in browser console (all browsers):

        IE11 error message:
        SCRIPT5007: Unable to get property 'dontShowPopup' of undefined or null reference
        File: ace-jquery.uncompressed.js.jsf, Line: 17682, Column: 13

        FF33 error message:
        TypeError: inst is undefined
        http://10.18.39.155:8080/icefaces-test/javax.faces.resource/util/ace-jquery.uncompressed.js.jsf?ln=icefaces.ace&v=3_3_0_141119
        Line 17682

        Show
        Carmen Cristurean added a comment - Testing with 3.3 EE Maintenance branch r43557/ 4.0 trunk r43553 (Chrome39, IE10, IE11, FF33): The initial issue is resolved. However trying to re-open the dateTimeEntry popup for a new date selection fails (all browsers). Steps: go to /icefaces-test/calendar-popup-issue.jsf select a date -> the selected date is submitted to the server, the selected date is printed beside the calendar component, and the calendar remains closed. click inside the dateTimeEntry component to open up the calendar for a new selection -> this step fails. click on page outside the dateTimeEntry, then click again inside the dateTimeEntry -> IF 4.0 trunk only: calendar popup opens up for selection. EE 3.3.maintenance: calendar popup does not open up, and a JS error is logged in browser console (all browsers): IE11 error message: SCRIPT5007: Unable to get property 'dontShowPopup' of undefined or null reference File: ace-jquery.uncompressed.js.jsf, Line: 17682, Column: 13 FF33 error message: TypeError: inst is undefined http://10.18.39.155:8080/icefaces-test/javax.faces.resource/util/ace-jquery.uncompressed.js.jsf?ln=icefaces.ace&v=3_3_0_141119 Line 17682
        Hide
        Krashan Brahmanjara added a comment -

        I can confirm this error on Icefaces 4 from trunk. We reverted this change on local branch.

        Show
        Krashan Brahmanjara added a comment - I can confirm this error on Icefaces 4 from trunk. We reverted this change on local branch.

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Philip Breau
          • Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: