Merge pull request #1332 from pi-hole/tweak/dhcp_save_state

Remember last used sort column/direction on DHCP lease tables
This commit is contained in:
DL6ER
2020-05-25 20:05:45 +02:00
committed by GitHub
13 changed files with 62 additions and 109 deletions
+2 -14
View File
@@ -172,22 +172,10 @@ function initTable() {
],
stateSave: true,
stateSaveCallback: function (settings, data) {
// Store current state in client's local storage area
localStorage.setItem("groups-adlists-table", JSON.stringify(data));
utils.stateSaveCallback("groups-adlists-table", data);
},
stateLoadCallback: function () {
// Receive previous state from client's local storage area
var data = localStorage.getItem("groups-adlists-table");
// Return if not available
if (data === null) {
return null;
}
data = JSON.parse(data);
// Always start on the first page to show most recent queries
data.start = 0;
// Always start with empty search field
data.search.search = "";
var data = utils.stateLoadCallback("groups-adlists-table");
// Reset visibility of ID column
data.columns[0].visible = false;
// Apply loaded state to table
+2 -14
View File
@@ -206,22 +206,10 @@ function initTable() {
],
stateSave: true,
stateSaveCallback: function (settings, data) {
// Store current state in client's local storage area
localStorage.setItem("groups-clients-table", JSON.stringify(data));
utils.stateSaveCallback("groups-clients-table", data);
},
stateLoadCallback: function () {
// Receive previous state from client's local storage area
var data = localStorage.getItem("groups-clients-table");
// Return if not available
if (data === null) {
return null;
}
data = JSON.parse(data);
// Always start on the first page to show most recent queries
data.start = 0;
// Always start with empty search field
data.search.search = "";
var data = utils.stateLoadCallback("groups-clients-table");
// Reset visibility of ID column
data.columns[0].visible = false;
// Apply loaded state to table
+2 -14
View File
@@ -247,22 +247,10 @@ function initTable() {
],
stateSave: true,
stateSaveCallback: function (settings, data) {
// Store current state in client's local storage area
localStorage.setItem("groups-domains-table", JSON.stringify(data));
utils.stateSaveCallback("groups-domains-table", data);
},
stateLoadCallback: function () {
// Receive previous state from client's local storage area
var data = localStorage.getItem("groups-domains-table");
// Return if not available
if (data === null) {
return null;
}
data = JSON.parse(data);
// Always start on the first page to show most recent queries
data.start = 0;
// Always start with empty search field
data.search.search = "";
var data = utils.stateLoadCallback("groups-domains-table");
// Reset visibility of ID column
data.columns[0].visible = false;
// Show group assignment column only on full page
+2 -14
View File
@@ -87,22 +87,10 @@ $(document).ready(function () {
],
stateSave: true,
stateSaveCallback: function (settings, data) {
// Store current state in client's local storage area
localStorage.setItem("groups-table", JSON.stringify(data));
utils.stateSaveCallback("groups-table", data);
},
stateLoadCallback: function () {
// Receive previous state from client's local storage area
var data = localStorage.getItem("groups-table");
// Return if not available
if (data === null) {
return null;
}
data = JSON.parse(data);
// Always start on the first page to show most recent queries
data.start = 0;
// Always start with empty search field
data.search.search = "";
var data = utils.stateLoadCallback("groups-table");
// Reset visibility of ID column
data.columns[0].visible = false;
// Apply loaded state to table
+2 -15
View File
@@ -95,23 +95,10 @@ $(document).ready(function () {
},
stateSave: true,
stateSaveCallback: function (settings, data) {
// Store current state in client's local storage area
localStorage.setItem("messages-table", JSON.stringify(data));
utils.stateSaveCallback("messages-table", data);
},
stateLoadCallback: function () {
// Receive previous state from client's local storage area
var data = localStorage.getItem("messages-table");
// Return if not available
if (data === null) {
return null;
}
// Parse loaded data
data = JSON.parse(data);
// Always start on the first page to show most recent queries
data.start = 0;
// Always start with empty search field
data.search.search = "";
var data = utils.stateLoadCallback("messages-table");
// Reset visibility of ID and blob columns
var hiddenCols = [0, 4, 5, 6, 7, 8];
for (var key in hiddenCols) {
+3 -17
View File
@@ -5,7 +5,7 @@
* This file is copyright under the latest version of the EUPL.
* Please see LICENSE file for your rights under this license. */
/* global moment:false */
/* global moment:false, utils:false */
var tableApi;
@@ -186,24 +186,10 @@ $(document).ready(function () {
],
stateSave: true,
stateSaveCallback: function (settings, data) {
// Store current state in client's local storage area
localStorage.setItem("network_table", JSON.stringify(data));
utils.stateSaveCallback("network_table", data);
},
stateLoadCallback: function () {
// Receive previous state from client's local storage area
var data = localStorage.getItem("network_table");
// Return if not available
if (data === null) {
return null;
}
data = JSON.parse(data);
// Always start on the first page
data.start = 0;
// Always start with empty search field
data.search.search = "";
// Apply loaded state to table
return data;
return utils.stateLoadCallback("network_table");
},
columnDefs: [
{
+3 -17
View File
@@ -5,7 +5,7 @@
* This file is copyright under the latest version of the EUPL.
* Please see LICENSE file for your rights under this license. */
/* global moment:false */
/* global moment:false, utils:false */
var tableApi;
@@ -399,24 +399,10 @@ $(document).ready(function () {
],
stateSave: true,
stateSaveCallback: function (settings, data) {
// Store current state in client's local storage area
localStorage.setItem("query_log_table", JSON.stringify(data));
utils.stateSaveCallback("query_log_table", data);
},
stateLoadCallback: function () {
// Receive previous state from client's local storage area
var data = localStorage.getItem("query_log_table");
// Return if not available
if (data === null) {
return null;
}
data = JSON.parse(data);
// Always start on the first page to show most recent queries
data.start = 0;
// Always start with empty search field
data.search.search = "";
// Apply loaded state to table
return data;
return utils.stateLoadCallback("query_log_table");
},
columnDefs: [
{
+18 -2
View File
@@ -5,6 +5,8 @@
* This file is copyright under the latest version of the EUPL.
* Please see LICENSE file for your rights under this license. */
/* global utils:false */
$(function () {
$("[data-static]").on("click", function () {
var row = $(this).closest("tr");
@@ -174,7 +176,14 @@ $(document).ready(function () {
scrollCollapse: true,
scrollY: "200px",
scrollX: true,
order: [[2, "asc"]]
order: [[2, "asc"]],
stateSave: true,
stateSaveCallback: function (settings, data) {
utils.stateSaveCallback("activeDhcpLeaseTable", data);
},
stateLoadCallback: function () {
return utils.stateLoadCallback("activeDhcpLeaseTable");
}
});
}
@@ -186,7 +195,14 @@ $(document).ready(function () {
scrollCollapse: true,
scrollY: "200px",
scrollX: true,
order: [[2, "asc"]]
order: [[2, "asc"]],
stateSave: true,
stateSaveCallback: function (settings, data) {
utils.stateSaveCallback("staticDhcpLeaseTable", data);
},
stateLoadCallback: function () {
return utils.stateLoadCallback("staticDhcpLeaseTable");
}
});
}
+24 -1
View File
@@ -149,6 +149,27 @@ function setBsSelectDefaults() {
};
}
function stateSaveCallback(itemName, data) {
localStorage.setItem(itemName, JSON.stringify(data));
}
function stateLoadCallback(itemName) {
// Receive previous state from client's local storage area
var data = localStorage.getItem(itemName);
// Return if not available
if (data === null) {
return null;
}
data = JSON.parse(data);
// Always start on the first page to show most recent queries
data.start = 0;
// Always start with empty search field
data.search.search = "";
// Apply loaded state to table
return data;
}
window.utils = (function () {
return {
showAlert: showAlert,
@@ -157,6 +178,8 @@ window.utils = (function () {
enableAll: enableAll,
validateIPv4CIDR: validateIPv4CIDR,
validateIPv6CIDR: validateIPv6CIDR,
setBsSelectDefaults: setBsSelectDefaults
setBsSelectDefaults: setBsSelectDefaults,
stateSaveCallback: stateSaveCallback,
stateLoadCallback: stateLoadCallback
};
})();