mirror of
https://github.com/processwire/processwire.git
synced 2025-08-08 07:47:00 +02:00
Adjustment to Lister to make the spinner more selective about when it spins
This commit is contained in:
@@ -6,6 +6,7 @@ var ProcessLister = {
|
|||||||
|
|
||||||
inInit: true, // are we currently in init() method?
|
inInit: true, // are we currently in init() method?
|
||||||
inTimeout: false, // setTimeout variable for use by clearTimeout if needed
|
inTimeout: false, // setTimeout variable for use by clearTimeout if needed
|
||||||
|
inAjax: false,
|
||||||
spinner: null, // spinner that shows during ajax calls
|
spinner: null, // spinner that shows during ajax calls
|
||||||
numSubmits: 0, // number of times ProcessLister._submit() method called
|
numSubmits: 0, // number of times ProcessLister._submit() method called
|
||||||
results: null, // shortcut to #ProcessListerResults
|
results: null, // shortcut to #ProcessListerResults
|
||||||
@@ -97,13 +98,14 @@ var ProcessLister = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$(document).ajaxStart(function() {
|
$(document).ajaxStart(function() {
|
||||||
|
if(!ProcessLister.inAjax) return;
|
||||||
var $spinner = $('#_ProcessListerRefreshTab').find('i');
|
var $spinner = $('#_ProcessListerRefreshTab').find('i');
|
||||||
if($spinner.length) $spinner.removeClass('fa-refresh').addClass('fa-spin fa-spinner');
|
if($spinner.length) $spinner.removeClass('fa-refresh').addClass('fa-spin fa-spinner');
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).ajaxStop(function() {
|
$(document).ajaxStop(function() {
|
||||||
var $spinner = $('#_ProcessListerRefreshTab').find('i');
|
var $spinner = $('#_ProcessListerRefreshTab').find('i');
|
||||||
if($spinner.length) $spinner.fadeOut('fast', function() {
|
if($spinner.length && $spinner.hasClass('fa-spin')) $spinner.fadeOut('fast', function() {
|
||||||
$spinner.removeClass('fa-spin fa-spinner').addClass('fa-refresh').fadeIn('fast');
|
$spinner.removeClass('fa-spin fa-spinner').addClass('fa-refresh').fadeIn('fast');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -199,12 +201,15 @@ var ProcessLister = {
|
|||||||
ProcessLister.resetTotal = false;
|
ProcessLister.resetTotal = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ProcessLister.inAjax = true;
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: url,
|
url: url,
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
data: submitData,
|
data: submitData,
|
||||||
success: ProcessLister._submitSuccess,
|
success: ProcessLister._submitSuccess,
|
||||||
error: function(error) {
|
error: function(error) {
|
||||||
|
ProcessLister.inAjax = false;
|
||||||
ProcessLister.results.html("<p>Error retrieving results: " + error + "</p>");
|
ProcessLister.results.html("<p>Error retrieving results: " + error + "</p>");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -220,6 +225,8 @@ var ProcessLister = {
|
|||||||
_submitSuccess: function(data) {
|
_submitSuccess: function(data) {
|
||||||
var refreshAll = true;
|
var refreshAll = true;
|
||||||
|
|
||||||
|
ProcessLister.inAjax = false;
|
||||||
|
|
||||||
if(ProcessLister.refreshRowPageIDs.length) {
|
if(ProcessLister.refreshRowPageIDs.length) {
|
||||||
refreshAll = false;
|
refreshAll = false;
|
||||||
|
|
||||||
@@ -479,12 +486,15 @@ var ProcessLister = {
|
|||||||
$actions.after("<i class='fa fa-spin fa-spinner ui-priority-secondary'></i>");
|
$actions.after("<i class='fa fa-spin fa-spinner ui-priority-secondary'></i>");
|
||||||
$actions.hide();
|
$actions.hide();
|
||||||
|
|
||||||
|
ProcessLister.inAjax = true;
|
||||||
|
|
||||||
$.post(href, postData, function(data) {
|
$.post(href, postData, function(data) {
|
||||||
if(typeof data.page != "undefined" || data.action == 'trash') {
|
if(typeof data.page != "undefined" || data.action == 'trash') {
|
||||||
// highlight page mentioned in json return value
|
// highlight page mentioned in json return value
|
||||||
// data.page is returned by ProcessPageClone
|
// data.page is returned by ProcessPageClone
|
||||||
ProcessLister.clickAfterRefresh = '#page' + data.page;
|
ProcessLister.clickAfterRefresh = '#page' + data.page;
|
||||||
ProcessLister.resetTotal = true;
|
ProcessLister.resetTotal = true;
|
||||||
|
ProcessLister.inAjax = false;
|
||||||
} else {
|
} else {
|
||||||
// highlight page where action was clicked
|
// highlight page where action was clicked
|
||||||
ProcessLister.refreshRowPageIDs[pageID] = pageID;
|
ProcessLister.refreshRowPageIDs[pageID] = pageID;
|
||||||
|
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user