Added option to show loading overlay for a single request
authorAlexander Ebert <ebert@woltlab.com>
Thu, 14 Feb 2013 18:07:11 +0000 (19:07 +0100)
committerAlexander Ebert <ebert@woltlab.com>
Thu, 14 Feb 2013 18:07:11 +0000 (19:07 +0100)
wcfsetup/install/files/js/WCF.js

index 98e6a63ce133ec5a2cc89286911d031a65dad77c..09651ef13362806ac46968e13e7ee846d28345c5 100755 (executable)
@@ -1445,6 +1445,12 @@ WCF.Action = {};
  * @param      object          options
  */
 WCF.Action.Proxy = Class.extend({
+       /**
+        * shows loading overlay for a single request
+        * @var boolean
+        */
+       _showLoadingOverlayOnce: false,
+       
        /**
         * suppresses errors
         * @var boolean
@@ -1472,6 +1478,7 @@ WCF.Action.Proxy = Class.extend({
                
                this.confirmationDialog = null;
                this.loading = null;
+               this._showLoadingOverlayOnce = false;
                this._suppressErrors = false;
                
                // send request immediately after initialization
@@ -1499,6 +1506,13 @@ WCF.Action.Proxy = Class.extend({
                });
        },
        
+       /**
+        * Shows loading overlay for a single request.
+        */
+       showLoadingOverlayOnce: function() {
+               this._showLoadingOverlayOnce = true;
+       },
+       
        /**
         * Fires before request is send, displays global loading status.
         */
@@ -1507,7 +1521,7 @@ WCF.Action.Proxy = Class.extend({
                        this.options.init(this);
                }
                
-               if (this.options.showLoadingOverlay) {
+               if (this.options.showLoadingOverlay || this._showLoadingOverlayOnce) {
                        WCF.LoadingOverlayHandler.show();
                }
        },
@@ -1576,8 +1590,12 @@ WCF.Action.Proxy = Class.extend({
                        this.options.after();
                }
                
-               if (this.options.showLoadingOverlay) {
+               if (this.options.showLoadingOverlay || this._showLoadingOverlayOnce) {
                        WCF.LoadingOverlayHandler.hide();
+                       
+                       if (this._showLoadingOverlayOnce) {
+                               this._showLoadingOverlayOnce = false;
+                       }
                }
                
                // disable DOMNodeInserted event