mcramer
2012-10-09 c38869fb9f1dbe0e89f2dc2270aee39ab7f38beb
Bugfix: avoid flickering of loading indicator

1 files modified
27 ■■■■ changed files
interface/web/js/scrigo.js.php 27 ●●●● patch | view | raw | blame | history
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,6 +26,7 @@
function showLoadIndicator() {
    requestsRunning += 1;
    
    if(requestsRunning < 2) {
    var indicator = jQuery('#ajaxloader');
    if(indicator.length < 1) {
        indicator = jQuery('<div id="ajaxloader" style="display: none;"></div>');
@@ -32,26 +34,23 @@
    }
    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');
    /*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');*/
        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();});
        });
    }
}
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');
                                            }
                                        });