mirror of
https://github.com/pi-hole/web.git
synced 2024-12-06 19:36:21 +01:00
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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: [
|
||||
{
|
||||
|
||||
@@ -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: [
|
||||
{
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
};
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user