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=$("
  • ");$parent.append(ProcessLister.spinner)}else{ProcessLister.spinner=$("")}$(document).ajaxStart(function(){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(){$spinner.removeClass("fa-spin fa-spinner").addClass("fa-refresh").fadeIn("fast")})})},columnSort:function(){if($(this).hasClass("not_sortable"))return false;$(this).find("span").remove();var $b=$(this).find("b");var name=$b.text();var val=$("#lister_sort").val();if(val==name)name="-"+name;if(name.length<1)name=val;$("#lister_sort").val(name);ProcessLister.submit()},submit:function(url){if(ProcessLister.inTimeout)clearTimeout(ProcessLister.inTimeout);ProcessLister.inTimeout=setTimeout(function(){ProcessLister._submit(url)},250)},_submit:function(url){var refreshAll=true;if(ProcessLister.refreshRowPageIDs.length==0){var $form=ProcessLister.results.find(".InputfieldFormConfirm");if($form.length){var msg=InputfieldFormBeforeUnloadEvent(true);if(typeof msg!="undefined"&&msg.length){if(!confirm(msg))return false}}var $headline=ProcessLister.results.find(".lister_headline");if(!$headline.find("i.fa-spin").length){$headline.append("")}}else{refreshAll=false}ProcessLister.numSubmits++;if(typeof url=="undefined")url="./";ProcessLister.spinner.fadeIn("fast");var submitData={render_results:1,filters:refreshAll?ProcessLister.filters.val():"ignore",columns:$("#lister_columns").val(),sort:$("#lister_sort").val()};for(var key in ProcessLister.extraSubmitData){var val=ProcessLister.extraSubmitData[key];submitData[key]=val}ProcessLister.extraSubmitData={};if(ProcessLister.resetTotal){submitData["reset_total"]=1;ProcessLister.resetTotal=false}if(ProcessLister.refreshRowPageIDs.length>0){var rowPageIDs=ProcessLister.refreshRowPageIDs.join(",");if(rowPageIDs.indexOf(",")===0)rowPageIDs=rowPageIDs.replace(/^,+/,"");submitData["row_page_id"]=rowPageIDs;ProcessLister.resetTotal=false}$.ajax({url:url,type:"POST",data:submitData,success:ProcessLister._submitSuccess,error:function(error){ProcessLister.results.html("

    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=$(""+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("