mirror of
https://github.com/processwire/processwire.git
synced 2025-08-17 04:04:13 +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 string $property Name of property to get
|
||||||
* @param array $options Additional options (see getModuleInfo method for options)
|
* @param array $options Additional options (see getModuleInfo method for options)
|
||||||
* @return mixed|null Returns value of property or null if not found
|
* @return mixed|null Returns value of property or null if not found
|
||||||
|
* @since 3.0.107
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function getModuleInfoProperty($class, $property, array $options = array()) {
|
public function getModuleInfoProperty($class, $property, array $options = array()) {
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"title": "Lister",
|
"title": "Lister",
|
||||||
"summary": "Admin tool for finding and listing pages by any property.",
|
"summary": "Admin tool for finding and listing pages by any property.",
|
||||||
"version": 24,
|
"version": 25,
|
||||||
"author": "Ryan Cramer",
|
"author": "Ryan Cramer",
|
||||||
"icon": "search",
|
"icon": "search",
|
||||||
"singular": false,
|
"singular": false,
|
||||||
|
@@ -26,13 +26,10 @@ var ProcessLister = {
|
|||||||
ProcessLister.initialized = true;
|
ProcessLister.initialized = true;
|
||||||
if($("#ProcessLister").length == 0) return;
|
if($("#ProcessLister").length == 0) return;
|
||||||
|
|
||||||
ProcessLister.spinner = $("<li class='title' id='ProcessListerSpinner'><i class='fa fa-lg fa-spin fa-spinner'></i></li>");
|
ProcessLister.initSpinners();
|
||||||
$("#breadcrumbs ul.nav").append(ProcessLister.spinner);
|
|
||||||
|
|
||||||
ProcessLister.filters = $("#ProcessListerFilters");
|
ProcessLister.filters = $("#ProcessListerFilters");
|
||||||
ProcessLister.results = $("#ProcessListerResults");
|
ProcessLister.results = $("#ProcessListerResults");
|
||||||
ProcessLister.lister = $("#ProcessLister");
|
ProcessLister.lister = $("#ProcessLister");
|
||||||
|
|
||||||
ProcessLister.filters.change(function() { ProcessLister.submit(); });
|
ProcessLister.filters.change(function() { ProcessLister.submit(); });
|
||||||
ProcessLister.results.on('click', '.ProcessListerTable > thead th', ProcessLister.columnSort)
|
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") });
|
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')
|
.unbind('click')
|
||||||
.click(function() {
|
.click(function() {
|
||||||
ProcessLister.resetTotal = true;
|
ProcessLister.resetTotal = true;
|
||||||
@@ -71,7 +68,7 @@ var ProcessLister = {
|
|||||||
return false;
|
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')
|
.unbind('click')
|
||||||
.click(function() {
|
.click(function() {
|
||||||
window.location.href = './?reset=1';
|
window.location.href = './?reset=1';
|
||||||
@@ -84,6 +81,34 @@ var ProcessLister = {
|
|||||||
else ProcessLister.spinner.fadeOut();
|
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
|
* Implementation for table header (th) click event
|
||||||
*
|
*
|
||||||
@@ -132,12 +157,13 @@ var ProcessLister = {
|
|||||||
if(!confirm(msg)) return false;
|
if(!confirm(msg)) return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ProcessLister.results.find('.lister_headline').append("<i class='fa fa-spin fa-spinner'></i>");
|
||||||
} else {
|
} else {
|
||||||
refreshAll = false;
|
refreshAll = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProcessLister.numSubmits++;
|
ProcessLister.numSubmits++;
|
||||||
if(typeof url == "undefined") var url = "./";
|
if(typeof url == "undefined") url = "./";
|
||||||
|
|
||||||
ProcessLister.spinner.fadeIn('fast');
|
ProcessLister.spinner.fadeIn('fast');
|
||||||
|
|
||||||
@@ -182,8 +208,10 @@ var ProcessLister = {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
_submitSuccess: function(data) {
|
_submitSuccess: function(data) {
|
||||||
|
var refreshAll = true;
|
||||||
|
|
||||||
if(ProcessLister.refreshRowPageIDs.length) {
|
if(ProcessLister.refreshRowPageIDs.length) {
|
||||||
|
refreshAll = false;
|
||||||
|
|
||||||
for(var n in ProcessLister.refreshRowPageIDs) {
|
for(var n in ProcessLister.refreshRowPageIDs) {
|
||||||
var pageID = ProcessLister.refreshRowPageIDs[n];
|
var pageID = ProcessLister.refreshRowPageIDs[n];
|
||||||
@@ -206,12 +234,15 @@ var ProcessLister = {
|
|||||||
}, 1000);
|
}, 1000);
|
||||||
}
|
}
|
||||||
if($newRow.find(".Inputfield").length) InputfieldsInit($newRow);
|
if($newRow.find(".Inputfield").length) InputfieldsInit($newRow);
|
||||||
|
} else if($oldRow.length && !$newRow.length) {
|
||||||
|
$oldRow.remove(); // row no longer appears in results
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ProcessLister.refreshRowPageIDs = [];
|
ProcessLister.refreshRowPageIDs = [];
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// update entire table
|
// update entire table
|
||||||
|
ProcessLister.results.fadeTo(0, 0);
|
||||||
var sort = $("#lister_sort").val();
|
var sort = $("#lister_sort").val();
|
||||||
ProcessLister.results.html(data).find("table.ProcessListerTable > thead th").each(function () {
|
ProcessLister.results.html(data).find("table.ProcessListerTable > thead th").each(function () {
|
||||||
var $b = $(this).find('b');
|
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
|
$("a.actions_toggle.open").click().removeClass('open'); // auto open items corresponding to "open" get var
|
||||||
if(typeof AdminDataTable != "undefined") AdminDataTable.init();
|
if(typeof AdminDataTable != "undefined") AdminDataTable.init();
|
||||||
$("a.lister-lightbox", ProcessLister.results).magnificPopup({ type: 'image', closeOnContentClick: true, closeBtnInside: true });
|
$("a.lister-lightbox", ProcessLister.results).magnificPopup({ type: 'image', closeOnContentClick: true, closeBtnInside: true });
|
||||||
|
if(refreshAll) ProcessLister.results.fadeTo(0, 1.0);
|
||||||
}, 250);
|
}, 250);
|
||||||
|
|
||||||
var pos = data.indexOf('ProcessListerScript');
|
var pos = data.indexOf('ProcessListerScript');
|
||||||
|
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user