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

          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 .
          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?
          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.
          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?).
          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.
          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.
          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 ).
          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.
          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.
          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.
          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.

            People

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

              Dates

              • Created:
                Updated:
                Resolved: