ICEfaces
  1. ICEfaces
  2. ICE-4203

Support optional "busy" indicator + UI blocker when waiting for response from a submit

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.8RC2, 1.8
    • Component/s: Bridge
    • Labels:
      None
    • Environment:
      All
    • Affects:
      Documentation (User Guide, Ref. Guide, etc.), Sample App./Tutorial

      Description

      Need to provide an easy-to-use mechanism to prevent ICEfaces app. users from sending multiple submits/partialSubmits to the server concurrently as this can cause application and/or user UI issues with some applications.

      This can be provided by adding an optional feature to the bridge that would perform the following:

      - As a call to submitFull() or submitPartial() is made the bridge will:
         1. Set the cursor/pointer to an hourglass
         2. Display a semi-transparent DIV over the current application UI, similar to the technique used by the modal dialog, but less opaque. The intention is to provide a subtle visual indication that the application is busy and also to prevent user interaction with the application via mouse.

      - Once a response for the submit is received (or timed out, etc):
         1. Remove/hide the semi-transparent DIV.
         2. Restore the cursor/pointer to it's original shape (or to a pointer if that's impossible).


      This feature can be enabled via a new config. param "com.icesoft.faces.blockUIWhenBusy", or maybe "com.icesoft.faces.blockUIOnSubmit".

        Issue Links

          Activity

          Ken Fyten created issue -
          Ken Fyten made changes -
          Field Original Value New Value
          Salesforce Case []
          Fix Version/s 1.8 [ 10161 ]
          Affects [Documentation (User Guide, Ref. Guide, etc.), Sample App./Tutorial]
          Assignee Priority P1
          Assignee Mircea Toma [ mircea.toma ]
          Hide
          Ken Fyten added a comment -

          This feature also needs to work well with existing hourglass display techniques that exist around the ice:outputConnectionStatus component, see ICE-3254.

          Show
          Ken Fyten added a comment - This feature also needs to work well with existing hourglass display techniques that exist around the ice:outputConnectionStatus component, see ICE-3254 .
          Ken Fyten made changes -
          Link This issue blocks ICE-4164 [ ICE-4164 ]
          Hide
          Isuru Perera added a comment -

          What will be proposed effect when form is submitted from a modal popup?

          Show
          Isuru Perera added a comment - What will be proposed effect when form is submitted from a modal popup?
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #18555 Fri Mar 13 09:04:44 MDT 2009 mircea.toma ICE-4203 Block UI and ignore following events during a submit/apply-update cycle. Enable functionality through "com.icesoft.faces.blockUIOnSubmit" context parameter.
          Files Changed
          Commit graph MODIFY /icefaces/trunk/icefaces/bridge/src/status.js
          Commit graph MODIFY /icefaces/trunk/icefaces/bridge/src/connection.async.js
          Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/context/DOMResponseWriter.java
          Commit graph MODIFY /icefaces/trunk/icefaces/bridge/src/connection.js
          Hide
          Mircea Toma added a comment -

          Block UI and ignore following events during a submit/apply-update cycle. Enable functionality through "com.icesoft.faces.blockUIOnSubmit" context parameter.

          Show
          Mircea Toma added a comment - Block UI and ignore following events during a submit/apply-update cycle. Enable functionality through "com.icesoft.faces.blockUIOnSubmit" context parameter.
          Mircea Toma made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Hide
          Ken Fyten added a comment -

          Some slight tweaks to the original requirements:

          • Make the overlay completely transparent. Otherwise it causes flickering which is obtrusive and annoying.
          • Just use the Hourglass cursor to indicate busy state (and the outputConnectionStatus if that's on the page too).
          • Make it enabled by default. We can revert if req. before final release.
          • Add JS callbacks so users can disable the automatic feature and implement their own busy indicator strategy as desired (onSubmit, on Response?).

          Show
          Ken Fyten added a comment - Some slight tweaks to the original requirements: • Make the overlay completely transparent. Otherwise it causes flickering which is obtrusive and annoying. • Just use the Hourglass cursor to indicate busy state (and the outputConnectionStatus if that's on the page too). • Make it enabled by default. We can revert if req. before final release. • Add JS callbacks so users can disable the automatic feature and implement their own busy indicator strategy as desired (onSubmit, on Response?).
          Ken Fyten made changes -
          Resolution Fixed [ 1 ]
          Status Resolved [ 5 ] Reopened [ 4 ]
          Hide
          Ken Fyten added a comment -

          There is a serious issue with the current code. When this feature is enabled we are unable to load an ICEfaces page into IE6 or IE7.

          Show
          Ken Fyten added a comment - There is a serious issue with the current code. When this feature is enabled we are unable to load an ICEfaces page into IE6 or IE7.
          Hide
          Ken Fyten added a comment -

          Nasty error that IE displays when attempting to load ICEfaces page with blockUIOnSubmit=true specified.

          Show
          Ken Fyten added a comment - Nasty error that IE displays when attempting to load ICEfaces page with blockUIOnSubmit=true specified.
          Ken Fyten made changes -
          Attachment Picture 1.png [ 11586 ]
          Ken Fyten made changes -
          Fix Version/s 1.8RC2 [ 10163 ]
          Fix Version/s 1.8 [ 10161 ]
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #18578 Mon Mar 16 03:49:11 MDT 2009 mircea.toma ICE-4203 Stop rendering the overlay.
          Files Changed
          Commit graph MODIFY /icefaces/trunk/icefaces/bridge/src/status.js
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #18579 Mon Mar 16 03:55:22 MDT 2009 mircea.toma ICE-4203 Block interim submits by default.
          Files Changed
          Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/context/DOMResponseWriter.java
          Hide
          Mircea Toma added a comment -

          Stop rendering the overlay. Leave in the request blocking for the interim submits

          Show
          Mircea Toma added a comment - Stop rendering the overlay. Leave in the request blocking for the interim submits
          Hide
          Mircea Toma added a comment -

          Block interim submits by default.

          Show
          Mircea Toma added a comment - Block interim submits by default.
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #18592 Mon Mar 16 18:55:41 MDT 2009 mircea.toma ICE-4203 Added back the overlay. Fix issue with IE7.
          Files Changed
          Commit graph MODIFY /icefaces/trunk/icefaces/bridge/src/status.js
          Show
          Mircea Toma added a comment - Added back the overlay. Fix issue with IE7 (see http://weblogs.asp.net/infinitiesloop/archive/2006/11/02/Dealing-with-IE-_2600_quot_3B00_Operation-Aborted_2600_quot_3B002E00_-Or_2C00_-how-to-Crash-IE.aspx ).
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #18593 Tue Mar 17 05:18:41 MDT 2009 mircea.toma ICE-4203 Render hourglass in IE while submit occurs.
          Files Changed
          Commit graph MODIFY /icefaces/trunk/icefaces/bridge/src/status.js
          Commit graph ADD /icefaces/trunk/icefaces/core/src/com/icesoft/faces/webapp/http/core/WaitCursorPage.java
          Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/webapp/http/core/ResourceServer.java
          Hide
          Mircea Toma added a comment -

          Render hourglass cursor in IE by serving up iframe's page with styled body element.

          Show
          Mircea Toma added a comment - Render hourglass cursor in IE by serving up iframe's page with styled body element.
          Mircea Toma made changes -
          Status Reopened [ 4 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Hide
          Ken Fyten added a comment -

          This is working well now.

          One issue is that in IE the hourglass will not automatically change back to the arrow when the response is received unless you move the pointer/mouse, or some other JS is executed (google maps, for example).

          This could be a concern for users, please see if you can resolve that glitch.

          Show
          Ken Fyten added a comment - This is working well now. One issue is that in IE the hourglass will not automatically change back to the arrow when the response is received unless you move the pointer/mouse, or some other JS is executed (google maps, for example). This could be a concern for users, please see if you can resolve that glitch.
          Ken Fyten made changes -
          Resolution Fixed [ 1 ]
          Status Resolved [ 5 ] Reopened [ 4 ]
          Hide
          Mircea Toma added a comment -

          I think the glitch mentioned above is for Safari, not IE. I don't see it when using IE.

          Show
          Mircea Toma added a comment - I think the glitch mentioned above is for Safari, not IE. I don't see it when using IE.
          Hide
          Ken Fyten added a comment -

          Resolved.

          There is a follow-on JIRA (ICE-4226) for the hourglass cursor issue.

          Show
          Ken Fyten added a comment - Resolved. There is a follow-on JIRA ( ICE-4226 ) for the hourglass cursor issue.
          Ken Fyten made changes -
          Status Reopened [ 4 ] Resolved [ 5 ]
          Assignee Priority P1
          Resolution Fixed [ 1 ]
          Arran Mccullough made changes -
          Salesforce Case [500700000080k1j]
          Hide
          Mircea Toma added a comment -

          Due to issue ICE-4308 it was decided to have UI blocker disabled by default.

          Show
          Mircea Toma added a comment - Due to issue ICE-4308 it was decided to have UI blocker disabled by default.
          Ken Fyten made changes -
          Fix Version/s 1.8 [ 10161 ]
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #18750 Mon Apr 06 03:13:21 MDT 2009 mircea.toma ICE-4203 Integrate fixes.
          Files Changed
          Commit graph MODIFY /projects/bridge2/src/status.js
          Commit graph MODIFY /projects/bridge2/src/connection.async.js
          Commit graph MODIFY /projects/bridge2/src/application.js
          Ken Fyten made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          Assignee Mircea Toma [ mircea.toma ]

            People

            • Assignee:
              Unassigned
              Reporter:
              Ken Fyten
            • Votes:
              3 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: