mirror of
https://github.com/pi-hole/web.git
synced 2024-12-06 19:36:21 +01:00
Merge remote-tracking branch 'origin/devel' into devel-v6
Signed-off-by: DL6ER <dl6er@dl6er.de>
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
* Please see LICENSE file for your rights under this license. */
|
||||
|
||||
/* global utils:false, moment:false */
|
||||
|
||||
//The following functions allow us to display time until pi-hole is enabled after disabling.
|
||||
//Works between all pages
|
||||
|
||||
|
||||
@@ -223,9 +223,9 @@ function updateQueriesOverTime() {
|
||||
timeLineChart.data.datasets = [];
|
||||
|
||||
var labels = ["Blocked DNS Queries", "Cached DNS Queries", "Forwarded DNS Queries"];
|
||||
var blockedColor = $(".queries-blocked").css("background-color");
|
||||
var cachedColor = $(".queries-cached").css("background-color");
|
||||
var permittedColor = $(".queries-permitted").css("background-color");
|
||||
var cachedColor = utils.getCSSval("queries-cached", "background-color");
|
||||
var blockedColor = utils.getCSSval("queries-blocked", "background-color");
|
||||
var permittedColor = utils.getCSSval("queries-permitted", "background-color");
|
||||
var colors = [blockedColor, cachedColor, permittedColor];
|
||||
|
||||
// Collect values and colors, and labels
|
||||
@@ -740,8 +740,8 @@ $(function () {
|
||||
// Pull in data via AJAX
|
||||
updateSummaryData();
|
||||
|
||||
var gridColor = $(".graphs-grid").css("background-color");
|
||||
var ticksColor = $(".graphs-ticks").css("color");
|
||||
var gridColor = utils.getCSSval("graphs-grid", "background-color");
|
||||
var ticksColor = utils.getCSSval("graphs-ticks", "color");
|
||||
var ctx = document.getElementById("queryOverTimeChart").getContext("2d");
|
||||
timeLineChart = new Chart(ctx, {
|
||||
type: utils.getGraphType(),
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Pi-hole: A black hole for Internet advertisements
|
||||
/* Pi-hole: A black hole for Internet advertisements
|
||||
* (c) 2017 Pi-hole, LLC (https://pi-hole.net)
|
||||
* Network-wide ad blocking via your own hardware.
|
||||
*
|
||||
@@ -91,21 +91,21 @@ function parseQueryStatus(data) {
|
||||
icon = "fa-solid fa-ban";
|
||||
fieldtext = "Blocked (gravity)";
|
||||
buttontext =
|
||||
'<button type="button" class="btn btn-default btn-sm text-green"><i class="fas fa-check"></i> Allow</button>';
|
||||
'<button type="button" class="btn btn-default btn-sm text-green btn-whitelist"><i class="fas fa-check"></i> Allow</button>';
|
||||
break;
|
||||
case "FORWARDED":
|
||||
colorClass = "text-green";
|
||||
icon = "fa-solid fa-cloud-download-alt";
|
||||
fieldtext = "Forwarded to " + data.upstream;
|
||||
buttontext =
|
||||
'<button type="button" class="btn btn-default btn-sm text-red"><i class="fa fa-ban"></i> Deny</button>';
|
||||
'<button type="button" class="btn btn-default btn-sm text-red btn-blacklist"><i class="fa fa-ban"></i> Deny</button>';
|
||||
break;
|
||||
case "CACHE":
|
||||
colorClass = "text-green";
|
||||
icon = "fa-solid fa-database";
|
||||
fieldtext = "Served from cache";
|
||||
buttontext =
|
||||
'<button type="button" class="btn btn-default btn-sm text-red"><i class="fa fa-ban"></i> Deny</button>';
|
||||
'<button type="button" class="btn btn-default btn-sm text-red btn-blacklist"><i class="fa fa-ban"></i> Deny</button>';
|
||||
break;
|
||||
case "REGEX":
|
||||
colorClass = "text-red";
|
||||
@@ -113,14 +113,14 @@ function parseQueryStatus(data) {
|
||||
fieldtext = "Blocked (regex)";
|
||||
regexLink = data.regex > 0;
|
||||
buttontext =
|
||||
'<button type="button" class="btn btn-default btn-sm text-green"><i class="fas fa-check"></i> Allow</button>';
|
||||
'<button type="button" class="btn btn-default btn-sm text-green btn-whitelist"><i class="fas fa-check"></i> Allow</button>';
|
||||
break;
|
||||
case "DENYLIST":
|
||||
colorClass = "text-red";
|
||||
icon = "fa-solid fa-ban";
|
||||
fieldtext = "Blocked (exact)";
|
||||
buttontext =
|
||||
'<button type="button" class="btn btn-default btn-sm text-green"><i class="fas fa-check"></i> Allow</button>';
|
||||
'<button type="button" class="btn btn-default btn-sm text-green btn-whitelist"><i class="fas fa-check"></i> Allow</button>';
|
||||
break;
|
||||
case "EXTERNAL_BLOCKED_IP":
|
||||
colorClass = "text-red";
|
||||
@@ -145,7 +145,7 @@ function parseQueryStatus(data) {
|
||||
icon = "fa-solid fa-ban";
|
||||
fieldtext = "Blocked (gravity, CNAME)";
|
||||
buttontext =
|
||||
'<button type="button" class="btn btn-default btn-sm text-green"><i class="fas fa-check"></i> Allow</button>';
|
||||
'<button type="button" class="btn btn-default btn-sm text-green btn-whitelist"><i class="fas fa-check"></i> Allow</button>';
|
||||
isCNAME = true;
|
||||
break;
|
||||
case "REGEX_CNAME":
|
||||
@@ -154,7 +154,7 @@ function parseQueryStatus(data) {
|
||||
fieldtext = "Blocked (regex diened, CNAME)";
|
||||
regexLink = data.regex > 0;
|
||||
buttontext =
|
||||
'<button type="button" class="btn btn-default btn-sm text-green"><i class="fas fa-check"></i> Allow</button>';
|
||||
'<button type="button" class="btn btn-default btn-sm text-green btn-whitelist"><i class="fas fa-check"></i> Allow</button>';
|
||||
isCNAME = true;
|
||||
break;
|
||||
case "DENYLIST_CNAME":
|
||||
@@ -162,7 +162,7 @@ function parseQueryStatus(data) {
|
||||
icon = "fa-solid fa-ban";
|
||||
fieldtext = "Blocked (exact diened, CNAME)";
|
||||
buttontext =
|
||||
'<button type="button" class="btn btn-default btn-sm text-green"><i class="fas fa-check"></i> Allow</button>';
|
||||
'<button type="button" class="btn btn-default btn-sm text-green btn-whitelist"><i class="fas fa-check"></i> Allow</button>';
|
||||
isCNAME = true;
|
||||
break;
|
||||
case "RETRIED":
|
||||
@@ -182,14 +182,14 @@ function parseQueryStatus(data) {
|
||||
icon = "fa-solid fa-hourglass-half";
|
||||
fieldtext = "Already forwarded, awaiting reply";
|
||||
buttontext =
|
||||
'<button type="button" class="btn btn-default btn-sm text-red"><i class="fa fa-ban"></i> Deny</button>';
|
||||
'<button type="button" class="btn btn-default btn-sm text-red btn-blacklist"><i class="fa fa-ban"></i> Deny</button>';
|
||||
break;
|
||||
case "CACHE_STALE":
|
||||
colorClass = "text-green";
|
||||
icon = "fa-solid fa-infinity";
|
||||
fieldtext = "Served by cache optimizer";
|
||||
buttontext =
|
||||
'<button type="button" class="btn btn-default btn-sm text-red"><i class="fa fa-ban"></i> Deny</button>';
|
||||
'<button type="button" class="btn btn-default btn-sm text-red btn-blacklist"><i class="fa fa-ban"></i> Deny</button>';
|
||||
break;
|
||||
default:
|
||||
colorClass = "text-orange";
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
/* Pi-hole: A black hole for Internet advertisements
|
||||
* (c) 2017 Pi-hole, LLC (https://pi-hole.net)
|
||||
* Network-wide ad blocking via your own hardware.
|
||||
*
|
||||
* This file is copyright under the latest version of the EUPL.
|
||||
* Please see LICENSE file for your rights under this license. */
|
||||
|
||||
var timeleft = 60;
|
||||
var status = -1;
|
||||
var reloadMsg =
|
||||
"FTL was restarted: <a href='settings.php' class='btn btn-sm btn-primary'>Reload FTL details.</a>";
|
||||
var warningMsg = "FTL was not able to reload after " + timeleft + " seconds.";
|
||||
var counterMsg = "FTL is reloading: ";
|
||||
|
||||
var reloadTimer = setInterval(function () {
|
||||
$.getJSON("api.php?dns-port", function (data) {
|
||||
if ("FTLnotrunning" in data) {
|
||||
return;
|
||||
}
|
||||
|
||||
status = data["dns-port"];
|
||||
});
|
||||
|
||||
if (timeleft <= 0 || status >= 0) {
|
||||
clearInterval(reloadTimer);
|
||||
if (status < 0) {
|
||||
// FTL was not restarted in 60 seconds. Show warning message
|
||||
document.getElementById("restart-countdown").innerHTML = warningMsg;
|
||||
} else {
|
||||
// FTL restartd.
|
||||
document.getElementById("restart-countdown").innerHTML = reloadMsg;
|
||||
}
|
||||
} else {
|
||||
document.getElementById("restart-countdown").innerHTML =
|
||||
counterMsg + timeleft + " seconds remaining...";
|
||||
}
|
||||
|
||||
timeleft -= 1;
|
||||
}, 1000);
|
||||
@@ -480,6 +480,13 @@ function changeTableButtonStates(table) {
|
||||
}
|
||||
}
|
||||
|
||||
function getCSSval(cssclass, cssproperty) {
|
||||
var elem = $("<div class='" + cssclass + "'></div>"),
|
||||
val = elem.appendTo("body").css(cssproperty);
|
||||
elem.remove();
|
||||
return val;
|
||||
}
|
||||
|
||||
window.utils = (function () {
|
||||
return {
|
||||
escapeHtml: escapeHtml,
|
||||
@@ -509,5 +516,6 @@ window.utils = (function () {
|
||||
renderTimespan: renderTimespan,
|
||||
htmlPass: htmlPass,
|
||||
changeTableButtonStates: changeTableButtonStates,
|
||||
getCSSval: getCSSval,
|
||||
};
|
||||
})();
|
||||
|
||||
@@ -26,24 +26,13 @@ $hostname = gethostname() ? gethostname() : '';
|
||||
<link rel="icon" href="img/favicons/favicon-32x32.png" sizes="32x32" type="image/png">
|
||||
<link rel="icon" href="img/favicons/favicon-16x16.png" sizes="16x16" type="image/png">
|
||||
<link rel="manifest" href="img/favicons/manifest.json">
|
||||
<link rel="mask-icon" href="img/favicons/safari-pinned-tab.svg" color="#367fa9">
|
||||
<link rel="mask-icon" href="img/favicons/safari-pinned-tab.svg" color="<?php echo $theme_color; ?>">
|
||||
<link rel="shortcut icon" href="img/favicons/favicon.ico">
|
||||
<meta name="msapplication-TileColor" content="#367fa9">
|
||||
<meta name="msapplication-TileColor" content="<?php echo $theme_color; ?>">
|
||||
<meta name="msapplication-TileImage" content="img/favicons/mstile-150x150.png">
|
||||
|
||||
<!-- Theme styles -->
|
||||
<?php $theme = webtheme();
|
||||
$darkmode = true; ?>
|
||||
<?php if ($theme == 'default-light') {
|
||||
$darkmode = false; ?>
|
||||
<meta name="theme-color" content="#367fa9">
|
||||
<?php } elseif ($theme == 'default-dark') { ?>
|
||||
<meta name="theme-color" content="#272c30">
|
||||
<?php } elseif ($theme == 'default-darker') { ?>
|
||||
<meta name="theme-color" content="#2e6786">
|
||||
<?php } elseif ($theme == 'lcars') { ?>
|
||||
<meta name="theme-color" content="#4488FF">
|
||||
<?php } ?>
|
||||
<meta name="theme-color" content="<?php echo $theme_color; ?>">
|
||||
|
||||
<?php if ($darkmode) { ?>
|
||||
<style>
|
||||
|
||||
@@ -86,7 +86,7 @@ function startsWith($string, $startString)
|
||||
<ul class="dropdown-menu">
|
||||
<!-- User image -->
|
||||
<li class="user-header">
|
||||
<img src="img/logo.svg" alt="Pi-hole Logo" style="border: 0" width="90" height="90">
|
||||
<img class="logo-img" src="img/logo.svg" alt="Pi-hole Logo" style="border: 0" width="90" height="90">
|
||||
<p>
|
||||
Open Source Ad Blocker
|
||||
</p>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<!-- Sidebar user panel -->
|
||||
<div class="user-panel">
|
||||
<div class="pull-left image">
|
||||
<img src="img/logo.svg" alt="Pi-hole logo">
|
||||
<img class="logo-img" src="img/logo.svg" alt="Pi-hole logo">
|
||||
</div>
|
||||
<div class="pull-left info">
|
||||
<p>Status</p>
|
||||
|
||||
Reference in New Issue
Block a user