ICEfaces
  1. ICEfaces
  2. ICE-10934

Button click blocked by blockUiOnSubmit

    Details

    • Assignee Priority:
      P1
    • Support Case References:
    • Workaround Exists:
      Yes
    • Workaround Description:
      Hide
      Adding the following the ace:textEntry's ace:ajax tag:
      onStart="if (event.stopPropagation) { event.stopPropagation() } else { event.returnValue = false; }"
      Show
      Adding the following the ace:textEntry's ace:ajax tag: onStart="if (event.stopPropagation) { event.stopPropagation() } else { event.returnValue = false; }"

      Description

      An ace:textEntry component is set to submit on blur via an ace:ajax tag. If focus is set in the input field and a commandButton is clicked. The button click is blocked when blockUiOnSubmit is set to true.

      This is the same issue as described in ICE-10769 but is affecting other components now as well on the EE 3.3.0 and 4.x code bases.

        Activity

        Hide
        Arran Mccullough added a comment -

        Attached test case that shows this issue.

        Steps:

        • Load welcomeICEfaces.jsf
        • Focus into the input field and type in some text.
        • Without moving focus, click on the commandLink. The listener is not called as per the server logs.
        • Click the button again, the listener is called correctly.
        Show
        Arran Mccullough added a comment - Attached test case that shows this issue. Steps: Load welcomeICEfaces.jsf Focus into the input field and type in some text. Without moving focus, click on the commandLink. The listener is not called as per the server logs. Click the button again, the listener is called correctly.
        Hide
        Mircea Toma added a comment -

        I cannot reproduce the issue. The submits triggered by 'blur' and respectively 'click' events are both sent and the UI is blocked twice for each of them.

        Show
        Mircea Toma added a comment - I cannot reproduce the issue. The submits triggered by 'blur' and respectively 'click' events are both sent and the UI is blocked twice for each of them.
        Hide
        Arran Mccullough added a comment -

        What do you see in the console logs?

        I get the following testing my sample (added id's on the comps for better identification):

        "[icefaces] [Thu, 28 Jan 2016 19:13:56 GMT] full submit to http://localhost:8084/Case13666Example2/welcomeICEfaces.jsf
        javax.faces.execute: iceForm:inputEntry
        javax.faces.render: iceForm:inputEntry
        javax.faces.source: iceForm:inputEntry
        view ID: v7z2kh4
        event type: unknown" bridge-support.uncompressed.js.jsf:1817:89
        [icefaces] [Thu, 28 Jan 2016 19:13:56 GMT] blocking UI bridge-support.uncompressed.js.jsf:1817:89
        [icefaces] [Thu, 28 Jan 2016 19:13:56 GMT] persisted focus for element "iceForm:searchLink" bridge-support.uncompressed.js.jsf:1817:89
        [icefaces] [Thu, 28 Jan 2016 19:13:56 GMT] unblocked UI bridge-support.uncompressed.js.jsf:1817:89
        [icefaces] [Thu, 28 Jan 2016 19:13:56 GMT] applied updates >>
        eval: //no changes were generated....
        extension bridge-support.uncompressed.js.jsf:1817:89

        Show
        Arran Mccullough added a comment - What do you see in the console logs? I get the following testing my sample (added id's on the comps for better identification): " [icefaces] [Thu, 28 Jan 2016 19:13:56 GMT] full submit to http://localhost:8084/Case13666Example2/welcomeICEfaces.jsf javax.faces.execute: iceForm:inputEntry javax.faces.render: iceForm:inputEntry javax.faces.source: iceForm:inputEntry view ID: v7z2kh4 event type: unknown" bridge-support.uncompressed.js.jsf:1817:89 [icefaces] [Thu, 28 Jan 2016 19:13:56 GMT] blocking UI bridge-support.uncompressed.js.jsf:1817:89 [icefaces] [Thu, 28 Jan 2016 19:13:56 GMT] persisted focus for element "iceForm:searchLink" bridge-support.uncompressed.js.jsf:1817:89 [icefaces] [Thu, 28 Jan 2016 19:13:56 GMT] unblocked UI bridge-support.uncompressed.js.jsf:1817:89 [icefaces] [Thu, 28 Jan 2016 19:13:56 GMT] applied updates >> eval: //no changes were generated.... extension bridge-support.uncompressed.js.jsf:1817:89
        Hide
        Mircea Toma added a comment -

        This is what I get on Firefox:

        2
        [icefaces] [Thu, 28 Jan 2016 22:39:07 GMT] persisted focus for element "iceForm:_t6_input"
        bridge-..._160126 (line 1817)
        2
        [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] persisted focus for element "undefined"
        bridge-..._160126 (line 1817)
        
        [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] full submit to http://localhost:8080/Case13666Example2/welcomeICEfaces.jsf
        javax.faces.execute: iceForm:_t6
        javax.faces.render: iceForm:_t6
        javax.faces.source: iceForm:_t6
        view ID: vto7qup2
        event type: unknown
        
        bridge-..._160126 (line 1817)
        [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] blocking UI
        bridge-..._160126 (line 1817)
        POST http://localhost:8080/Case13666Example2/welcomeICEfaces.jsf
        	
        200 OK
        		26ms	
        jsf.js...._160126 (line 1886)
        [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] persisted focus for element "iceForm:_t7"
        bridge-..._160126 (line 1817)
        [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] unblocked UI
        bridge-..._160126 (line 1817)
        
        [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] applied updates >>
        eval: //no changes were generated....
        extension
        
        bridge-..._160126 (line 1817)
        [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] persisted focus for element "iceForm:_t7"
        bridge-..._160126 (line 1817)
        [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] blocking UI
        bridge-..._160126 (line 1817)
        POST http://localhost:8080/Case13666Example2/welcomeICEfaces.jsf
        	
        200 OK
        		47ms	
        jsf.js...._160126 (line 1886)
        [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] unblocked UI
        bridge-..._160126 (line 1817)
        
        [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] applied updates >>
        eval: //no changes were generated....
        update["j_id1:javax.faces.ViewState:0"]: -3813815393763133934:3494434207221328609....
        eval: var iceFormIdList=['iceForm']; ice.fixVi....
        extension
        
        Show
        Mircea Toma added a comment - This is what I get on Firefox: 2 [icefaces] [Thu, 28 Jan 2016 22:39:07 GMT] persisted focus for element "iceForm:_t6_input" bridge-..._160126 (line 1817) 2 [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] persisted focus for element "undefined" bridge-..._160126 (line 1817) [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] full submit to http: //localhost:8080/Case13666Example2/welcomeICEfaces.jsf javax.faces.execute: iceForm:_t6 javax.faces.render: iceForm:_t6 javax.faces.source: iceForm:_t6 view ID: vto7qup2 event type: unknown bridge-..._160126 (line 1817) [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] blocking UI bridge-..._160126 (line 1817) POST http: //localhost:8080/Case13666Example2/welcomeICEfaces.jsf 200 OK 26ms jsf.js...._160126 (line 1886) [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] persisted focus for element "iceForm:_t7" bridge-..._160126 (line 1817) [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] unblocked UI bridge-..._160126 (line 1817) [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] applied updates >> eval: //no changes were generated.... extension bridge-..._160126 (line 1817) [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] persisted focus for element "iceForm:_t7" bridge-..._160126 (line 1817) [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] blocking UI bridge-..._160126 (line 1817) POST http: //localhost:8080/Case13666Example2/welcomeICEfaces.jsf 200 OK 47ms jsf.js...._160126 (line 1886) [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] unblocked UI bridge-..._160126 (line 1817) [icefaces] [Thu, 28 Jan 2016 22:39:10 GMT] applied updates >> eval: //no changes were generated.... update[ "j_id1:javax.faces.ViewState:0" ]: -3813815393763133934:3494434207221328609.... eval: var iceFormIdList=['iceForm']; ice.fixVi.... extension
        Hide
        Arran Mccullough added a comment -

        Are you able to reproduce the issue in IE? I'm not sure why you can't reproduce the issue using the same war file.

        Show
        Arran Mccullough added a comment - Are you able to reproduce the issue in IE? I'm not sure why you can't reproduce the issue using the same war file.
        Hide
        Mircea Toma added a comment - - edited

        I am able to reproduce the issue in IE. It seems IE is slower in processing the response corresponding to the 'blur' triggered request and thus the next request triggered by 'click' event is blocked.

        Now this is an issue we dealt with before ( ICE-10769 ) and determined that the blockUIOnSubmit feature does its job properly. I am not sure what kind of behaviour are we supposed to have here.

        Show
        Mircea Toma added a comment - - edited I am able to reproduce the issue in IE. It seems IE is slower in processing the response corresponding to the 'blur' triggered request and thus the next request triggered by 'click' event is blocked. Now this is an issue we dealt with before ( ICE-10769 ) and determined that the blockUIOnSubmit feature does its job properly. I am not sure what kind of behaviour are we supposed to have here.
        Hide
        Mircea Toma added a comment - - edited

        In order to exclude the textEntry from triggering blockUIOnSubmit and allow the 'click' event to trigger the submit the ace:submitMonitor component should be used instead of the global (per page) blockUIOnSubmit core feature. The ace:submitMonitor component allows one to limit the scope of the blockUIOnSubmit feature and thus workaround this issue.

        Show
        Mircea Toma added a comment - - edited In order to exclude the textEntry from triggering blockUIOnSubmit and allow the 'click' event to trigger the submit the ace:submitMonitor component should be used instead of the global (per page) blockUIOnSubmit core feature. The ace:submitMonitor component allows one to limit the scope of the blockUIOnSubmit feature and thus workaround this issue.
        Hide
        Oscar Stigzelius added a comment -

        Mircea Toma Your comment isn't absolutely true. Only by removing blockUIOnSubmit completely the ace:submitMonitor element with the attribute blockUI will work. If you have a lot of forms then it will take a lot of time to add an ace:submitMonitor element to every form. But this is due to a BUGFIX that should not have been made in my opinion: ICE-10518. The ace:submitMonitor element's attribute blockUI should be able to overwrite the blockUIOnSubmit setting. More of this argument can be found on this issue ICE-11454 and on this stackOverflow question.

        Show
        Oscar Stigzelius added a comment - Mircea Toma Your comment isn't absolutely true. Only by removing blockUIOnSubmit completely the ace:submitMonitor element with the attribute blockUI will work. If you have a lot of forms then it will take a lot of time to add an ace:submitMonitor element to every form. But this is due to a BUGFIX that should not have been made in my opinion: ICE-10518 . The ace:submitMonitor element's attribute blockUI should be able to overwrite the blockUIOnSubmit setting. More of this argument can be found on this issue ICE-11454 and on this stackOverflow question .

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Arran Mccullough
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: