diff --git a/wire/modules/Process/ProcessPageLister/ProcessPageLister.js b/wire/modules/Process/ProcessPageLister/ProcessPageLister.js index 3d9efcc3..40b29ddb 100644 --- a/wire/modules/Process/ProcessPageLister/ProcessPageLister.js +++ b/wire/modules/Process/ProcessPageLister/ProcessPageLister.js @@ -6,6 +6,7 @@ var ProcessLister = { inInit: true, // are we currently in init() method? inTimeout: false, // setTimeout variable for use by clearTimeout if needed + inAjax: false, spinner: null, // spinner that shows during ajax calls numSubmits: 0, // number of times ProcessLister._submit() method called results: null, // shortcut to #ProcessListerResults @@ -97,13 +98,14 @@ var ProcessLister = { } $(document).ajaxStart(function() { + if(!ProcessLister.inAjax) return; var $spinner = $('#_ProcessListerRefreshTab').find('i'); if($spinner.length) $spinner.removeClass('fa-refresh').addClass('fa-spin fa-spinner'); }); $(document).ajaxStop(function() { 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'); }); }); @@ -199,12 +201,15 @@ var ProcessLister = { ProcessLister.resetTotal = false; } + ProcessLister.inAjax = true; + $.ajax({ url: url, type: 'POST', data: submitData, success: ProcessLister._submitSuccess, error: function(error) { + ProcessLister.inAjax = false; ProcessLister.results.html("
Error retrieving results: " + error + "
"); } }); @@ -220,6 +225,8 @@ var ProcessLister = { _submitSuccess: function(data) { var refreshAll = true; + ProcessLister.inAjax = false; + if(ProcessLister.refreshRowPageIDs.length) { refreshAll = false; @@ -479,12 +486,15 @@ var ProcessLister = { $actions.after(""); $actions.hide(); + ProcessLister.inAjax = true; + $.post(href, postData, function(data) { if(typeof data.page != "undefined" || data.action == 'trash') { // highlight page mentioned in json return value // data.page is returned by ProcessPageClone ProcessLister.clickAfterRefresh = '#page' + data.page; ProcessLister.resetTotal = true; + ProcessLister.inAjax = false; } else { // highlight page where action was clicked ProcessLister.refreshRowPageIDs[pageID] = pageID; diff --git a/wire/modules/Process/ProcessPageLister/ProcessPageLister.min.js b/wire/modules/Process/ProcessPageLister/ProcessPageLister.min.js index dc154213..f4ea8037 100644 --- a/wire/modules/Process/ProcessPageLister/ProcessPageLister.min.js +++ b/wire/modules/Process/ProcessPageLister/ProcessPageLister.min.js @@ -1 +1 @@ -var ProcessLister={inInit:true,inTimeout:false,spinner:null,numSubmits:0,results:null,filters:null,lister:null,initialized:false,resetTotal:false,clickAfterRefresh:"",refreshRowPageIDs:[],extraSubmitData:{},init:function(){if(ProcessLister.initialized)return;ProcessLister.initialized=true;if($("#ProcessLister").length==0)return;ProcessLister.initSpinners();ProcessLister.filters=$("#ProcessListerFilters");ProcessLister.results=$("#ProcessListerResults");ProcessLister.lister=$("#ProcessLister");ProcessLister.filters.on("change",function(){ProcessLister.submit()});ProcessLister.results.on("click",".ProcessListerTable > thead th",ProcessLister.columnSort);$(document).on("click","a.actions_toggle",ProcessLister.pageClick);$(document).on("click",".actions a.ajax",ProcessLister.actionClickAjax);$("#actions_items_open").attr("disabled","disabled").parent("label").addClass("ui-state-disabled");$(document).on("click",".MarkupPagerNav a",function(){var url=$(this).attr("href");ProcessLister.submit(url);return false});$("#submit_refresh").on("click",function(){ProcessLister.resetTotal=true;ProcessLister.submit();$(this).fadeOut("normal",function(){$("#submit_refresh").removeClass("ui-state-active").fadeIn()});return false});$("#lister_columns").on("change",function(){ProcessLister.submit()});$("#ProcessListerActionsForm").find("script").remove();if(ProcessLister.lister.length>0)ProcessLister.lister.WireTabs({items:$(".WireTab")});$("#_ProcessListerRefreshTab").html("").off("click").on("click",function(){ProcessLister.resetTotal=true;ProcessLister.submit();return false});$("#_ProcessListerResetTab").html("").off("click").on("click",function(){window.location.href="./?reset=1";return false});ProcessLister.inInit=false;if(ProcessLister.numSubmits==0)ProcessLister.submit();else ProcessLister.spinner.fadeOut()},initSpinners:function(){var $parent=$("#breadcrumbs ul.nav");if($parent.length){ProcessLister.spinner=$("Error retrieving results: "+error+"
")}})},_submitSuccess:function(data){var refreshAll=true;if(ProcessLister.refreshRowPageIDs.length){refreshAll=false;for(var n in ProcessLister.refreshRowPageIDs){var pageID=ProcessLister.refreshRowPageIDs[n];var idAttr="#page"+pageID;var $oldRow=$(idAttr).closest("tr");var $newRow=$(data).find(idAttr).closest("tr");var message=$oldRow.find(".actions_toggle").attr("data-message");if($oldRow.length&&$newRow.length){$oldRow.replaceWith($newRow);$newRow.addClass("row_refreshed_"+pageID);$newRow.effect("highlight","normal");if(message){var $message=$(" ");$newRow.find(".actions_toggle").addClass("row_message_on").closest(".col_preview, td").append($message);setTimeout(function(){$message.fadeOut("normal",function(){$newRow.find(".actions_toggle").removeClass("row_message_on").trigger("click")})},1e3)}if($newRow.find(".Inputfield").length)InputfieldsInit($newRow)}else if($oldRow.length&&!$newRow.length){$oldRow.remove()}}ProcessLister.refreshRowPageIDs=[]}else{ProcessLister.results.fadeTo(0,0);var sort=$("#lister_sort").val();ProcessLister.results.html(data).find("table.ProcessListerTable > thead th").each(function(){var $b=$(this).find("b");var txt=$b.text();$b.remove();$(this).find("span").remove();var $icon=$(this).find("i");if($icon.length)$icon.remove();var label=$(this).html();if(txt==sort){$(this).html(""+label+" ↓"+txt+"")}else if(sort=="-"+txt){$(this).html(""+label+" ↑"+txt+"")}else{$(this).html(label+""+txt+"")}if($icon.length>0)$(this).prepend($icon)}).end().effect("highlight","fast");if(ProcessLister.results.find(".Inputfield").length){InputfieldsInit(ProcessLister.results)}}if(ProcessLister.clickAfterRefresh.length>0){if(ProcessLister.clickAfterRefresh.indexOf("#")<0&&ProcessLister.clickAfterRefresh.indexOf(".")<0){ProcessLister.clickAfterRefresh="#"+ProcessLister.clickAfterRefresh}$(ProcessLister.clickAfterRefresh).each(function(){var $a=$(this);$a.trigger("click");var $tr=$a.closest("tr");$tr.fadeTo(100,.1);setTimeout(function(){$tr.fadeTo(250,1)},250)});ProcessLister.clickAfterRefresh=""}ProcessLister.spinner.fadeOut();setTimeout(function(){ProcessLister.results.trigger("loaded");ProcessLister.results.find(".Inputfield:not(.reloaded)").addClass("reloaded").trigger("reloaded",["ProcessPageLister"]);$("a.actions_toggle.open").trigger("click").removeClass("open");if(typeof AdminDataTable!="undefined")AdminDataTable.init();$("a.lister-lightbox",ProcessLister.results).magnificPopup({type:"image",closeOnContentClick:true,closeBtnInside:true});if(refreshAll)ProcessLister.results.fadeTo(0,1)},250);var pos=data.indexOf("ProcessListerScript");if(pos>-1){var js=data.substring(pos+21);if(js!=""){pos=js.indexOf("");js=js.substring(0,pos);$("body").append("