mirror of
https://github.com/processwire/processwire.git
synced 2025-08-14 02:34:24 +02:00
A couple of adjustments to ProcessPageLister module to correct issue of neverending spinner when ajax result was missing an expected row, plus improve the ajax spinner output, especially for AdminThemUikit which previously was not showing a spinner.
This commit is contained in:
@@ -3030,6 +3030,7 @@ class Modules extends WireArray {
|
||||
* @param string $property Name of property to get
|
||||
* @param array $options Additional options (see getModuleInfo method for options)
|
||||
* @return mixed|null Returns value of property or null if not found
|
||||
* @since 3.0.107
|
||||
*
|
||||
*/
|
||||
public function getModuleInfoProperty($class, $property, array $options = array()) {
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"title": "Lister",
|
||||
"summary": "Admin tool for finding and listing pages by any property.",
|
||||
"version": 24,
|
||||
"version": 25,
|
||||
"author": "Ryan Cramer",
|
||||
"icon": "search",
|
||||
"singular": false,
|
||||
|
@@ -25,14 +25,11 @@ var ProcessLister = {
|
||||
if(ProcessLister.initialized) return;
|
||||
ProcessLister.initialized = true;
|
||||
if($("#ProcessLister").length == 0) return;
|
||||
|
||||
ProcessLister.spinner = $("<li class='title' id='ProcessListerSpinner'><i class='fa fa-lg fa-spin fa-spinner'></i></li>");
|
||||
$("#breadcrumbs ul.nav").append(ProcessLister.spinner);
|
||||
|
||||
ProcessLister.initSpinners();
|
||||
ProcessLister.filters = $("#ProcessListerFilters");
|
||||
ProcessLister.results = $("#ProcessListerResults");
|
||||
ProcessLister.lister = $("#ProcessLister");
|
||||
|
||||
ProcessLister.filters.change(function() { ProcessLister.submit(); });
|
||||
ProcessLister.results.on('click', '.ProcessListerTable > thead th', ProcessLister.columnSort)
|
||||
|
||||
@@ -63,7 +60,7 @@ var ProcessLister = {
|
||||
if(ProcessLister.lister.size() > 0) ProcessLister.lister.WireTabs({ items: $(".WireTab") });
|
||||
|
||||
|
||||
$("#_ProcessListerRefreshTab").html("<i class='fa fa-refresh ui-priority-secondary'></i>")
|
||||
$("#_ProcessListerRefreshTab").html("<i class='fa fa-fw fa-refresh ui-priority-secondary'></i>")
|
||||
.unbind('click')
|
||||
.click(function() {
|
||||
ProcessLister.resetTotal = true;
|
||||
@@ -71,7 +68,7 @@ var ProcessLister = {
|
||||
return false;
|
||||
});
|
||||
|
||||
$("#_ProcessListerResetTab").html("<i class='fa fa-rotate-left ui-priority-secondary'></i>")
|
||||
$("#_ProcessListerResetTab").html("<i class='fa fa-fw fa-rotate-left ui-priority-secondary'></i>")
|
||||
.unbind('click')
|
||||
.click(function() {
|
||||
window.location.href = './?reset=1';
|
||||
@@ -83,6 +80,34 @@ var ProcessLister = {
|
||||
if(ProcessLister.numSubmits == 0) ProcessLister.submit();
|
||||
else ProcessLister.spinner.fadeOut();
|
||||
},
|
||||
|
||||
/**
|
||||
* Initialize spinners
|
||||
*
|
||||
*/
|
||||
initSpinners: function() {
|
||||
var $parent = $("#breadcrumbs ul.nav");
|
||||
if($parent.length) {
|
||||
// legacy spinner (AdminThemeDefault, AdminThemeReno)
|
||||
ProcessLister.spinner = $("<li class='title' id='ProcessListerSpinner'><i class='fa fa-lg fa-spin fa-spinner'></i></li>");
|
||||
$parent.append(ProcessLister.spinner);
|
||||
} else {
|
||||
// in AdminThemeUikit or others, this spinner is not used
|
||||
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');
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Implementation for table header (th) click event
|
||||
@@ -132,12 +157,13 @@ var ProcessLister = {
|
||||
if(!confirm(msg)) return false;
|
||||
}
|
||||
}
|
||||
ProcessLister.results.find('.lister_headline').append("<i class='fa fa-spin fa-spinner'></i>");
|
||||
} else {
|
||||
refreshAll = false;
|
||||
}
|
||||
|
||||
ProcessLister.numSubmits++;
|
||||
if(typeof url == "undefined") var url = "./";
|
||||
if(typeof url == "undefined") url = "./";
|
||||
|
||||
ProcessLister.spinner.fadeIn('fast');
|
||||
|
||||
@@ -182,8 +208,10 @@ var ProcessLister = {
|
||||
*
|
||||
*/
|
||||
_submitSuccess: function(data) {
|
||||
var refreshAll = true;
|
||||
|
||||
if(ProcessLister.refreshRowPageIDs.length) {
|
||||
refreshAll = false;
|
||||
|
||||
for(var n in ProcessLister.refreshRowPageIDs) {
|
||||
var pageID = ProcessLister.refreshRowPageIDs[n];
|
||||
@@ -206,12 +234,15 @@ var ProcessLister = {
|
||||
}, 1000);
|
||||
}
|
||||
if($newRow.find(".Inputfield").length) InputfieldsInit($newRow);
|
||||
} else if($oldRow.length && !$newRow.length) {
|
||||
$oldRow.remove(); // row no longer appears in results
|
||||
}
|
||||
}
|
||||
ProcessLister.refreshRowPageIDs = [];
|
||||
|
||||
} else {
|
||||
// update entire table
|
||||
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');
|
||||
@@ -258,6 +289,7 @@ var ProcessLister = {
|
||||
$("a.actions_toggle.open").click().removeClass('open'); // auto open items corresponding to "open" get var
|
||||
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.0);
|
||||
}, 250);
|
||||
|
||||
var pos = data.indexOf('ProcessListerScript');
|
||||
|
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user