From c38869fb9f1dbe0e89f2dc2270aee39ab7f38beb Mon Sep 17 00:00:00 2001
From: mcramer <m.cramer@pixcept.de>
Date: Tue, 09 Oct 2012 09:07:21 -0400
Subject: [PATCH] Bugfix: avoid flickering of loading indicator
---
interface/web/js/scrigo.js.php | 45 ++++++++++++++++++++++-----------------------
1 files changed, 22 insertions(+), 23 deletions(-)
diff --git a/interface/web/js/scrigo.js.php b/interface/web/js/scrigo.js.php
index 1d5d507..1051905 100644
--- a/interface/web/js/scrigo.js.php
+++ b/interface/web/js/scrigo.js.php
@@ -12,6 +12,7 @@
var requestsRunning = 0;
var indicatorPaddingH = -1;
var indicatorPaddingW = -1;
+var indicatorCompleted = false;
redirect = '';
function reportError(request) {
@@ -25,33 +26,31 @@
function showLoadIndicator() {
requestsRunning += 1;
- var indicator = jQuery('#ajaxloader');
- if(indicator.length < 1) {
- indicator = jQuery('<div id="ajaxloader" style="display: none;"></div>');
- indicator.appendTo('body');
+ if(requestsRunning < 2) {
+ var indicator = jQuery('#ajaxloader');
+ if(indicator.length < 1) {
+ indicator = jQuery('<div id="ajaxloader" style="display: none;"></div>');
+ indicator.appendTo('body');
+ }
+ var parent = jQuery('#content');
+ if(parent.length < 1) return;
+ indicatorCompleted = false;
+
+ var atx = parent.offset().left + 150; //((parent.outerWidth(true) - indicator.outerWidth(true)) / 2);
+ var aty = parent.offset().top + 150;
+ indicator.css( {'left': atx, 'top': aty } ).fadeIn('fast', function() {
+ // check if loader should be hidden immediately
+ indicatorCompleted = true;
+ if(requestsRunning < 1) $(this).fadeOut('fast', function() { $(this).hide();});
+ });
}
- var parent = jQuery('#content');
- if(parent.length < 1) return;
-
- var atx = parent.offset().left + 150; //((parent.outerWidth(true) - indicator.outerWidth(true)) / 2);
- var aty = parent.offset().top + 150;
- indicator.css( {'left': atx, 'top': aty } ).fadeIn('fast');
-
- /*var atx = parent.offset().left;
- var aty = parent.offset().top;
- if(indicatorPaddingW == -1) indicatorPaddingW = parseInt(indicator.css('padding-left')) + parseInt(indicator.css('padding-right'));
- if(indicatorPaddingH == -1) indicatorPaddingH = parseInt(indicator.css('padding-top')) + parseInt(indicator.css('padding-bottom'));
- var atw = parent.outerWidth() - indicatorPaddingW;
- var ath = parent.outerHeight() - indicatorPaddingH;
-
- indicator.css( {'left': atx, 'top': aty, 'width': atw, 'height': ath } ).fadeIn('fast');*/
}
function hideLoadIndicator() {
requestsRunning -= 1;
if(requestsRunning < 1) {
- jQuery('#ajaxloader').fadeOut('fast', function() { jQuery('#ajaxloader').hide(); } );
requestsRunning = 0; // just for the case...
+ if(indicatorCompleted == true) jQuery('#ajaxloader').fadeOut('fast', function() { jQuery('#ajaxloader').hide(); } );
}
}
@@ -437,14 +436,14 @@
url: pagename,
dataType: "html",
beforeSend: function() {
- showLoadIndicator();
+// showLoadIndicator();
},
success: function(data, textStatus, jqXHR) {
- hideLoadIndicator();
+// hideLoadIndicator();
jQuery('#'+elementid).html(jqXHR.responseText);
},
error: function() {
- hideLoadIndicator();
+// hideLoadIndicator();
reportError('Ajax Request was not successful. 118');
}
});
--
Gitblit v1.9.1