From 21964cfd7f3ba9c692bc67fff2db4e25448f2a05 Mon Sep 17 00:00:00 2001 From: DL6ER Date: Sat, 26 Feb 2022 10:50:31 +0100 Subject: [PATCH 1/4] Add per-browser setting to ignore non-fatal dnsmasq warnings Signed-off-by: DL6ER --- api_db.php | 5 ++++- scripts/pi-hole/js/footer.js | 26 ++++++++++++++++---------- scripts/pi-hole/js/settings.js | 25 ++++++++++++++++++++++++- settings.php | 10 +++++++++- 4 files changed, 53 insertions(+), 13 deletions(-) diff --git a/api_db.php b/api_db.php index e5340ff3..ed84bc03 100644 --- a/api_db.php +++ b/api_db.php @@ -384,7 +384,10 @@ if (isset($_GET['getGraphData']) && $auth) if (isset($_GET['status'])) { - $results = $db->query('SELECT COUNT(*) FROM message;'); + $extra = ";"; + if(isset($_GET["ignore"]) && $_GET["ignore"] === 'DNSMASQ_WARN') + $extra = "WHERE type != 'DNSMASQ_WARN';"; + $results = $db->query('SELECT COUNT(*) FROM message '.$extra); if(!is_bool($results)) $result = array('message_count' => $results->fetchArray()[0]); diff --git a/scripts/pi-hole/js/footer.js b/scripts/pi-hole/js/footer.js index 5e386622..b88862a9 100644 --- a/scripts/pi-hole/js/footer.js +++ b/scripts/pi-hole/js/footer.js @@ -102,18 +102,24 @@ function piholeChange(action, duration) { } function checkMessages() { - $.getJSON("api_db.php?status", function (data) { - if ("message_count" in data && data.message_count > 0) { - var title = - data.message_count > 1 - ? "There are " + data.message_count + " warnings. Click for further details." - : "There is one warning. Click for further details."; + var ignoreNonfatal = localStorage + ? localStorage.getItem("hideNonfatalDnsmasqWarnings_chkbox") + : false; + $.getJSON( + "api_db.php?status" + (ignoreNonfatal === "true" ? "&ignore=DNSMASQ_WARN" : ""), + function (data) { + if ("message_count" in data && data.message_count > 0) { + var title = + data.message_count > 1 + ? "There are " + data.message_count + " warnings. Click for further details." + : "There is one warning. Click for further details."; - $("#pihole-diagnosis").prop("title", title); - $("#pihole-diagnosis-count").text(data.message_count); - $("#pihole-diagnosis").removeClass("hidden"); + $("#pihole-diagnosis").prop("title", title); + $("#pihole-diagnosis-count").text(data.message_count); + $("#pihole-diagnosis").removeClass("hidden"); + } } - }); + ); } function testCookies() { diff --git a/scripts/pi-hole/js/settings.js b/scripts/pi-hole/js/settings.js index 274d6adc..e89bf860 100644 --- a/scripts/pi-hole/js/settings.js +++ b/scripts/pi-hole/js/settings.js @@ -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 utils:false */ +/* global utils:false, checkMessages:false */ var token = $("#token").text(); $(function () { @@ -446,3 +446,26 @@ $('button[id="removedynamic"]').on("click", function () { }, }); }); + +// Non-fatal dnsmasq warnings toggle +$(function () { + var nonfatalwarnigns = $("#hideNonfatalDnsmasqWarnings"); + var chkboxData = localStorage ? localStorage.getItem("hideNonfatalDnsmasqWarnings_chkbox") : null; + + if (chkboxData !== null) { + // Restore checkbox state + nonfatalwarnigns.prop("checked", chkboxData === "true"); + } else { + // Initialize checkbox + nonfatalwarnigns.prop("checked", false); + if (localStorage) { + localStorage.setItem("hideNonfatalDnsmasqWarnings_chkbox", false); + } + } + + nonfatalwarnigns.click(function () { + localStorage.setItem("hideNonfatalDnsmasqWarnings_chkbox", nonfatalwarnigns.prop("checked")); + // Call check messages to make new setting effective + checkMessages(); + }); +}); diff --git a/settings.php b/settings.php index e59b1352..2772372c 100644 --- a/settings.php +++ b/settings.php @@ -1131,7 +1131,7 @@ if (isset($_GET['tab']) && in_array($_GET['tab'], array("sysadmin", "dns", "piho
-

Styling (auto saved, per-browser)

+

Per-browser settings (auto saved)

@@ -1217,6 +1217,14 @@ if (isset($_GET['tab']) && in_array($_GET['tab'], array("sysadmin", "dns", "piho
+
+
+
+ + +
+
+
From 8b8341ba36bfc7f21b7798b446bcfba98fce584b Mon Sep 17 00:00:00 2001 From: DL6ER Date: Sat, 26 Feb 2022 11:02:13 +0100 Subject: [PATCH 2/4] Also hide non-fatal messages in the table Signed-off-by: DL6ER --- api_db.php | 6 +++++- scripts/pi-hole/js/footer.js | 25 +++++++++++-------------- scripts/pi-hole/js/messages.js | 5 ++++- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/api_db.php b/api_db.php index ed84bc03..6f45433a 100644 --- a/api_db.php +++ b/api_db.php @@ -399,8 +399,12 @@ if (isset($_GET['status'])) if(isset($_GET["messages"]) && $auth) { + $extra = ";"; + if(isset($_GET["ignore"]) && $_GET["ignore"] === 'DNSMASQ_WARN') + $extra = "WHERE type != 'DNSMASQ_WARN';"; + $messages = array(); - $results = $db->query('SELECT * FROM message'); + $results = $db->query('SELECT * FROM message '.$extra); while($results !== false && $res = $results->fetchArray(SQLITE3_ASSOC)) { diff --git a/scripts/pi-hole/js/footer.js b/scripts/pi-hole/js/footer.js index b88862a9..a7fd4612 100644 --- a/scripts/pi-hole/js/footer.js +++ b/scripts/pi-hole/js/footer.js @@ -103,23 +103,20 @@ function piholeChange(action, duration) { function checkMessages() { var ignoreNonfatal = localStorage - ? localStorage.getItem("hideNonfatalDnsmasqWarnings_chkbox") + ? localStorage.getItem("hideNonfatalDnsmasqWarnings_chkbox") === "true" : false; - $.getJSON( - "api_db.php?status" + (ignoreNonfatal === "true" ? "&ignore=DNSMASQ_WARN" : ""), - function (data) { - if ("message_count" in data && data.message_count > 0) { - var title = - data.message_count > 1 - ? "There are " + data.message_count + " warnings. Click for further details." - : "There is one warning. Click for further details."; + $.getJSON("api_db.php?status" + (ignoreNonfatal ? "&ignore=DNSMASQ_WARN" : ""), function (data) { + if ("message_count" in data && data.message_count > 0) { + var title = + data.message_count > 1 + ? "There are " + data.message_count + " warnings. Click for further details." + : "There is one warning. Click for further details."; - $("#pihole-diagnosis").prop("title", title); - $("#pihole-diagnosis-count").text(data.message_count); - $("#pihole-diagnosis").removeClass("hidden"); - } + $("#pihole-diagnosis").prop("title", title); + $("#pihole-diagnosis-count").text(data.message_count); + $("#pihole-diagnosis").removeClass("hidden"); } - ); + }); } function testCookies() { diff --git a/scripts/pi-hole/js/messages.js b/scripts/pi-hole/js/messages.js index f95777f6..37c13b01 100644 --- a/scripts/pi-hole/js/messages.js +++ b/scripts/pi-hole/js/messages.js @@ -132,9 +132,12 @@ function renderMessage(data, type, row) { } $(function () { + var ignoreNonfatal = localStorage + ? localStorage.getItem("hideNonfatalDnsmasqWarnings_chkbox") === "true" + : false; table = $("#messagesTable").DataTable({ ajax: { - url: "api_db.php?messages", + url: "api_db.php?messages" + (ignoreNonfatal ? "&ignore=DNSMASQ_WARN" : ""), data: { token: token }, type: "POST", dataSrc: "messages", From 790921a4e12fd679b4d08d1a84cc2a8629fd3842 Mon Sep 17 00:00:00 2001 From: DL6ER Date: Sun, 27 Feb 2022 20:43:14 +0100 Subject: [PATCH 3/4] Hide triangle if all warnings disappeared Signed-off-by: DL6ER --- scripts/pi-hole/js/footer.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/pi-hole/js/footer.js b/scripts/pi-hole/js/footer.js index a7fd4612..94dcf9a2 100644 --- a/scripts/pi-hole/js/footer.js +++ b/scripts/pi-hole/js/footer.js @@ -115,6 +115,10 @@ function checkMessages() { $("#pihole-diagnosis").prop("title", title); $("#pihole-diagnosis-count").text(data.message_count); $("#pihole-diagnosis").removeClass("hidden"); + } else { + $("#pihole-diagnosis").prop("title", ""); + $("#pihole-diagnosis-count").text(0); + $("#pihole-diagnosis").addClass("hidden"); } }); } From b78ba8d56260aa8ab9ae988b5f6b3f04605aa70a Mon Sep 17 00:00:00 2001 From: DL6ER Date: Sun, 27 Feb 2022 20:45:23 +0100 Subject: [PATCH 4/4] Add documentation link Signed-off-by: DL6ER --- settings.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.php b/settings.php index 2772372c..203dcfb2 100644 --- a/settings.php +++ b/settings.php @@ -1221,7 +1221,7 @@ if (isset($_GET['tab']) && in_array($_GET['tab'], array("sysadmin", "dns", "piho
- +