1
0
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:
Ryan Cramer
2024-06-23 11:19:47 -04:00
parent 7a43790412
commit 0500293f96
2 changed files with 12 additions and 2 deletions

View File

@@ -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