- Infocenter uebersicht bugfix: tablesorter filter storage is the same for homepage with and without "/index" (for keeping tablesorter filter when coming back from details page)

This commit is contained in:
alex
2019-10-25 10:26:54 +02:00
parent 1971ec8ed1
commit 89ad21b1ef
2 changed files with 33 additions and 17 deletions
+11 -17
View File
@@ -84,7 +84,7 @@ var FHC_FilterWidget = {
// Public methods
/**
* To display the FilterWidget using the loaded data prenset in the session
* To display the FilterWidget using the loaded data present in the session
*/
display: function() {
@@ -392,7 +392,6 @@ var FHC_FilterWidget = {
},
{
successCallback: function(data, textStatus, jqXHR) {
FHC_FilterWidget._cleanTablesorterLocalStorage();
FHC_FilterWidget._failOrRefresh(data, textStatus, jqXHR);
}
}
@@ -413,7 +412,6 @@ var FHC_FilterWidget = {
},
{
successCallback: function(data, textStatus, jqXHR) {
FHC_FilterWidget._cleanTablesorterLocalStorage();
FHC_FilterWidget._failOrRefresh(data, textStatus, jqXHR);
}
}
@@ -454,7 +452,6 @@ var FHC_FilterWidget = {
},
{
successCallback: function(data, textStatus, jqXHR) {
FHC_FilterWidget._cleanTablesorterLocalStorage();
FHC_FilterWidget._failOrRefresh(data, textStatus, jqXHR);
}
}
@@ -489,7 +486,6 @@ var FHC_FilterWidget = {
},
{
successCallback: function(data, textStatus, jqXHR) {
FHC_FilterWidget._cleanTablesorterLocalStorage();
FHC_FilterWidget._failOrReload(data, textStatus, jqXHR);
}
}
@@ -509,7 +505,6 @@ var FHC_FilterWidget = {
},
{
successCallback: function(data, textStatus, jqXHR) {
FHC_FilterWidget._cleanTablesorterLocalStorage();
FHC_FilterWidget._failOrReload(data, textStatus, jqXHR);
}
}
@@ -840,6 +835,14 @@ var FHC_FilterWidget = {
*/
_renderDatasetTablesorter: function(data) {
//clear tablesorter filter storage
var keepTsFilter = FHC_AjaxClient.getUrlParameter("keepTsFilter");
if (typeof keepTsFilter === "undefined" || keepTsFilter !== "true")
{
FHC_FilterWidget._clearTablesorterLocalStorage();
}
if (data.hasOwnProperty("checkboxes") && data.checkboxes!=null && data.checkboxes.trim() != "")
{
$("#filterTableDataset > thead > tr").append("<th data-filter='false' title='Select'>Select</th>");
@@ -938,14 +941,6 @@ var FHC_FilterWidget = {
}
});
// Reset filter storage if not specified by get parameter
var keepTsFilter = FHC_AjaxClient.getUrlParameter("keepTsFilter");
if (typeof keepTsFilter === "undefined" || keepTsFilter !== "true")
{
FHC_FilterWidget._cleanTablesorterLocalStorage();
}
$.tablesorter.updateAll($("#filterTableDataset")[0].config, true, null);
}
},
@@ -1064,9 +1059,8 @@ var FHC_FilterWidget = {
/**
* Tablesorter filter local storage clean
*/
_cleanTablesorterLocalStorage: function() {
$("#filterTableDataset").trigger("filterResetSaved");
_clearTablesorterLocalStorage: function() {
localStorage.removeItem("tablesorter-filters");
},
/**
@@ -148,6 +148,28 @@ var InfocenterPersonDataset = {
trs.find("input[name=PersonId\\[\\]]").prop("checked", false);
}
);
//make sure tablesorter local storage for homepage url with and without "/index" shares same values
$("#filterTableDataset").bind('filterEnd', function()
{
if (FHC_JS_DATA_STORAGE_OBJECT.called_method === 'index')
{
var pathname = window.location.pathname;
var storageobj = localStorage.getItem("tablesorter-filters");
var parsed = JSON.parse(storageobj);
var regex = new RegExp(/\/index(?!\.ci\.php)/);
if (regex.test(pathname))
{
parsed[pathname.replace(regex, "")] = parsed[pathname];
}
else
{
parsed[pathname + "/index"] = parsed[pathname];
}
storageobj = JSON.stringify(parsed);
localStorage.setItem("tablesorter-filters", storageobj);
}
});
},
/**