mirror of
https://github.com/pi-hole/web.git
synced 2025-12-24 20:55:28 +00:00
Merge branch 'development' into new/web_prefix
Signed-off-by: DL6ER <dl6er@dl6er.de>
This commit is contained in:
@@ -46,7 +46,7 @@ mg.include('scripts/lua/header_authenticated.lp','r')
|
||||
<strong>Hints:</strong>
|
||||
<ol>
|
||||
<li>Please run <code>pihole -g</code> or update your gravity list <a href="<?=webhome?>gravity">online</a> after modifying your lists.</li>
|
||||
<li>Multiple lists can be added by separating each <i>unique</i> URL with a space or comma</li>
|
||||
<li>Multiple lists can be added by separating each <em>unique</em> URL with a space or comma</li>
|
||||
<li>Click on the icon in the first column to get additional information about your lists. The icons correspond to the health of the list.</li>
|
||||
</ol>
|
||||
<div class="btn-toolbar pull-right" role="toolbar" aria-label="Toolbar with buttons">
|
||||
|
||||
86
package-lock.json
generated
86
package-lock.json
generated
@@ -37,10 +37,10 @@
|
||||
"waitme": "1.19.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^10.4.20",
|
||||
"autoprefixer": "^10.4.21",
|
||||
"eslint-plugin-compat": "^6.0.2",
|
||||
"postcss": "^8.5.3",
|
||||
"postcss-cli": "^11.0.0",
|
||||
"postcss-cli": "^11.0.1",
|
||||
"prettier": "^3.5.3",
|
||||
"xo": "^0.60.0"
|
||||
}
|
||||
@@ -1313,9 +1313,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/autoprefixer": {
|
||||
"version": "10.4.20",
|
||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz",
|
||||
"integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==",
|
||||
"version": "10.4.21",
|
||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz",
|
||||
"integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -1333,11 +1333,11 @@
|
||||
],
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"browserslist": "^4.23.3",
|
||||
"caniuse-lite": "^1.0.30001646",
|
||||
"browserslist": "^4.24.4",
|
||||
"caniuse-lite": "^1.0.30001702",
|
||||
"fraction.js": "^4.3.7",
|
||||
"normalize-range": "^0.1.2",
|
||||
"picocolors": "^1.0.1",
|
||||
"picocolors": "^1.1.1",
|
||||
"postcss-value-parser": "^4.2.0"
|
||||
},
|
||||
"bin": {
|
||||
@@ -1834,9 +1834,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001700",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz",
|
||||
"integrity": "sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==",
|
||||
"version": "1.0.30001704",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001704.tgz",
|
||||
"integrity": "sha512-+L2IgBbV6gXB4ETf0keSvLr7JUrRVbIaB/lrQ1+z8mRcQiisG5k+lG6O4n6Y5q6f5EuNfaYXKgymucphlEXQew==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -2556,13 +2556,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/dependency-graph": {
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz",
|
||||
"integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==",
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz",
|
||||
"integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.6.0"
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/deps-sort": {
|
||||
@@ -6946,23 +6946,22 @@
|
||||
}
|
||||
},
|
||||
"node_modules/postcss-cli": {
|
||||
"version": "11.0.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-11.0.0.tgz",
|
||||
"integrity": "sha512-xMITAI7M0u1yolVcXJ9XTZiO9aO49mcoKQy6pCDFdMh9kGqhzLVpWxeD/32M/QBmkhcGypZFFOLNLmIW4Pg4RA==",
|
||||
"version": "11.0.1",
|
||||
"resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-11.0.1.tgz",
|
||||
"integrity": "sha512-0UnkNPSayHKRe/tc2YGW6XnSqqOA9eqpiRMgRlV1S6HdGi16vwJBx7lviARzbV1HpQHqLLRH3o8vTcB0cLc+5g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"chokidar": "^3.3.0",
|
||||
"dependency-graph": "^0.11.0",
|
||||
"dependency-graph": "^1.0.0",
|
||||
"fs-extra": "^11.0.0",
|
||||
"get-stdin": "^9.0.0",
|
||||
"globby": "^14.0.0",
|
||||
"picocolors": "^1.0.0",
|
||||
"postcss-load-config": "^5.0.0",
|
||||
"postcss-reporter": "^7.0.0",
|
||||
"pretty-hrtime": "^1.0.3",
|
||||
"read-cache": "^1.0.0",
|
||||
"slash": "^5.0.0",
|
||||
"tinyglobby": "^0.2.12",
|
||||
"yargs": "^17.0.0"
|
||||
},
|
||||
"bin": {
|
||||
@@ -8552,6 +8551,51 @@
|
||||
"node": ">=0.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/tinyglobby": {
|
||||
"version": "0.2.12",
|
||||
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz",
|
||||
"integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"fdir": "^6.4.3",
|
||||
"picomatch": "^4.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/SuperchupuDev"
|
||||
}
|
||||
},
|
||||
"node_modules/tinyglobby/node_modules/fdir": {
|
||||
"version": "6.4.3",
|
||||
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz",
|
||||
"integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"picomatch": "^3 || ^4"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"picomatch": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/tinyglobby/node_modules/picomatch": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
|
||||
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/jonschlinkert"
|
||||
}
|
||||
},
|
||||
"node_modules/to-absolute-glob": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-3.0.0.tgz",
|
||||
|
||||
13
package.json
13
package.json
@@ -22,7 +22,7 @@
|
||||
"xo:check": "npm run xo",
|
||||
"xo:fix": "npm run xo -- --fix",
|
||||
"test": "npm run prettier:check && npm run xo:check",
|
||||
"testpr": "npm run prettier:fix && git diff --ws-error-highlight=all --color=always --exit-code && npm run xo:check"
|
||||
"testpr": "npm run prefix && npm run prettier:fix && git diff --ws-error-highlight=all --color=always --exit-code && npm run xo:check"
|
||||
},
|
||||
"dependencies": {
|
||||
"admin-lte": "2.4.18",
|
||||
@@ -53,16 +53,19 @@
|
||||
"waitme": "1.19.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^10.4.20",
|
||||
"autoprefixer": "^10.4.21",
|
||||
"eslint-plugin-compat": "^6.0.2",
|
||||
"postcss": "^8.5.3",
|
||||
"postcss-cli": "^11.0.0",
|
||||
"postcss-cli": "^11.0.1",
|
||||
"prettier": "^3.5.3",
|
||||
"xo": "^0.60.0"
|
||||
},
|
||||
"browserslist": [
|
||||
"defaults",
|
||||
"not IE 11"
|
||||
">= 0.5%",
|
||||
"last 2 major versions",
|
||||
"not dead",
|
||||
"not op_mini all",
|
||||
"Firefox ESR"
|
||||
],
|
||||
"prettier": {
|
||||
"arrowParens": "avoid",
|
||||
|
||||
@@ -206,7 +206,7 @@ function initCheckboxRadioStyle() {
|
||||
chkboxStyle = "primary";
|
||||
}
|
||||
|
||||
var boxsheet = $('<link href="' + getCheckboxURL(chkboxStyle) + '" rel="stylesheet" />');
|
||||
var boxsheet = $('<link href="' + getCheckboxURL(chkboxStyle) + '" rel="stylesheet">');
|
||||
// Only add the stylesheet if it's not already present
|
||||
if ($("link[href='" + boxsheet.attr("href") + "']").length === 0) boxsheet.appendTo("head");
|
||||
|
||||
@@ -220,7 +220,7 @@ function initCheckboxRadioStyle() {
|
||||
iCheckStyle.on("change", function () {
|
||||
var themename = $(this).val();
|
||||
localStorage.setItem("theme_icheck", themename);
|
||||
applyCheckboxRadioStyle(themename);
|
||||
applyCheckboxRadioStyle();
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -586,7 +586,7 @@ function updateVersionInfo() {
|
||||
}
|
||||
|
||||
// Display update information of individual components only if we are not running in a Docker container
|
||||
if ((!isDocker || (isDocker && v.name === "Docker Tag")) && updateComponentAvailable) {
|
||||
if ((!isDocker || v.name === "Docker Tag") && updateComponentAvailable) {
|
||||
$("#versions").append(
|
||||
"<li><strong>" +
|
||||
v.name +
|
||||
|
||||
@@ -11,20 +11,11 @@ function eventsource() {
|
||||
var alSuccess = $("#alSuccess");
|
||||
var ta = $("#output");
|
||||
|
||||
// https://caniuse.com/fetch - everything except IE
|
||||
// This is fine, as we dropped support for IE a while ago
|
||||
if (typeof fetch !== "function") {
|
||||
ta.show();
|
||||
ta.html("Updating lists of ad-serving domains is not supported with this browser!");
|
||||
return;
|
||||
}
|
||||
|
||||
ta.html("");
|
||||
ta.show();
|
||||
alInfo.show();
|
||||
alSuccess.hide();
|
||||
|
||||
// eslint-disable-next-line compat/compat
|
||||
fetch(apiUrl + "/action/gravity", {
|
||||
method: "POST",
|
||||
headers: { "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content") },
|
||||
|
||||
@@ -63,29 +63,23 @@ function showSuggestDomains(value) {
|
||||
var newDomainEl = $("#new_domain");
|
||||
var suggestDomainEl = $("#suggest_domains");
|
||||
|
||||
try {
|
||||
// URL is not supported in all browsers, but we are in a try-block so we can ignore it
|
||||
// eslint-disable-next-line compat/compat
|
||||
var parts = new URL(value).hostname.split(".");
|
||||
var table = $("<table>");
|
||||
var parts = new URL(value).hostname.split(".");
|
||||
var table = $("<table>");
|
||||
|
||||
for (var i = 0; i < parts.length - 1; ++i) {
|
||||
var hostname = parts.slice(i).join(".");
|
||||
for (var i = 0; i < parts.length - 1; ++i) {
|
||||
var hostname = parts.slice(i).join(".");
|
||||
|
||||
table.append(
|
||||
$("<tr>")
|
||||
.append($('<td class="text-nowrap text-right">').text(i === 0 ? "Did you mean" : "or"))
|
||||
.append($("<td>").append(createButton(hostname)))
|
||||
);
|
||||
}
|
||||
|
||||
suggestDomainEl.slideUp("fast", function () {
|
||||
suggestDomainEl.html(table);
|
||||
suggestDomainEl.slideDown("fast");
|
||||
});
|
||||
} catch {
|
||||
hideSuggestDomains();
|
||||
table.append(
|
||||
$("<tr>")
|
||||
.append($('<td class="text-nowrap text-right">').text(i === 0 ? "Did you mean" : "or"))
|
||||
.append($("<td>").append(createButton(hostname)))
|
||||
);
|
||||
}
|
||||
|
||||
suggestDomainEl.slideUp("fast", function () {
|
||||
suggestDomainEl.html(table);
|
||||
suggestDomainEl.slideDown("fast");
|
||||
});
|
||||
}
|
||||
|
||||
function hideSuggestDomains() {
|
||||
|
||||
@@ -181,7 +181,7 @@ $(function () {
|
||||
// MAC + Vendor field if available
|
||||
if (data.macVendor && data.macVendor.length > 0) {
|
||||
$("td:eq(1)", row).html(
|
||||
utils.escapeHtml(data.hwaddr) + "<br/>" + utils.escapeHtml(data.macVendor)
|
||||
utils.escapeHtml(data.hwaddr) + "<br>" + utils.escapeHtml(data.macVendor)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -323,7 +323,7 @@ function createDynamicConfigTabs() {
|
||||
// Dynamically fill the tabs with config topics
|
||||
Object.keys(data.config).forEach(function (topic) {
|
||||
var value = data.config[topic];
|
||||
generateRow(topic, topic, value, data);
|
||||
generateRow(topic, topic, value);
|
||||
});
|
||||
$("#advanced-overlay").hide();
|
||||
|
||||
|
||||
@@ -264,5 +264,7 @@ $(document).ready(function () {
|
||||
});
|
||||
|
||||
// Add a small legend below the CNAME table
|
||||
$("#cnameRecords-Table").after("<small>* <b>TTL</b> in seconds <i>(optional)</i></small>");
|
||||
$("#cnameRecords-Table").after(
|
||||
"<small>* <strong>TTL</strong> in seconds <em>(optional)</em></small>"
|
||||
);
|
||||
});
|
||||
|
||||
@@ -20,13 +20,6 @@ function importZIP() {
|
||||
return;
|
||||
}
|
||||
|
||||
// https://caniuse.com/fetch - everything except IE
|
||||
// This is fine, as we dropped support for IE a while ago
|
||||
if (typeof fetch !== "function") {
|
||||
alert("Importing Tricorder files is not supported with this browser!");
|
||||
return;
|
||||
}
|
||||
|
||||
// Get the selected import options
|
||||
const imports = {},
|
||||
gravity = {};
|
||||
@@ -44,7 +37,6 @@ function importZIP() {
|
||||
const formData = new FormData();
|
||||
formData.append("import", JSON.stringify(imports));
|
||||
formData.append("file", file);
|
||||
// eslint-disable-next-line compat/compat
|
||||
fetch(apiUrl + "/teleporter", {
|
||||
method: "POST",
|
||||
body: formData,
|
||||
@@ -93,14 +85,14 @@ $("#GETTeleporter").on("click", function () {
|
||||
},
|
||||
success: function (data, status, xhr) {
|
||||
var a = document.createElement("a");
|
||||
// eslint-disable-next-line compat/compat
|
||||
var url = globalThis.URL.createObjectURL(data);
|
||||
|
||||
a.href = url;
|
||||
a.download = xhr.getResponseHeader("Content-Disposition").match(/filename="([^"]*)"/)[1];
|
||||
document.body.append(a);
|
||||
a.click();
|
||||
a.remove();
|
||||
// eslint-disable-next-line compat/compat
|
||||
|
||||
globalThis.URL.revokeObjectURL(url);
|
||||
},
|
||||
});
|
||||
|
||||
@@ -26,10 +26,10 @@ function formatDnsmasq(line) {
|
||||
|
||||
if (line.includes("denied") || line.includes("gravity blocked")) {
|
||||
// Red bold text for blocked domains
|
||||
txt = `<b class="log-red">${txt}</b>`;
|
||||
txt = `<strong class="log-red">${txt}</strong>`;
|
||||
} else if (line.includes("query[A") || line.includes("query[DHCP")) {
|
||||
// Bold text for initial query lines
|
||||
txt = `<b>${txt}</b>`;
|
||||
txt = `<strong>${txt}</strong>`;
|
||||
} else {
|
||||
// Grey text for all other lines
|
||||
txt = `<span class="text-muted">${txt}</span>`;
|
||||
|
||||
@@ -18,7 +18,7 @@ mg.include('header.lp','r')
|
||||
<script src="<?=pihole.fileversion('vendor/chartjs-plugin-deferred/chartjs-plugin-deferred.min.js')?>"></script>
|
||||
<script src="<?=pihole.fileversion('vendor/moment/moment.min.js')?>"></script>
|
||||
<script src="<?=pihole.fileversion('vendor/chartjs-adapter-moment/chartjs-adapter-moment.js')?>"></script>
|
||||
<script src="<?=pihole.fileversion('vendor/hammer/hammer.min.js')?>"></script> <!-- Needed for chartjs-plugin-zoom --->
|
||||
<script src="<?=pihole.fileversion('vendor/hammer/hammer.min.js')?>"></script> <!-- Needed for chartjs-plugin-zoom -->
|
||||
<script src="<?=pihole.fileversion('vendor/chartjs-plugin-zoom/chartjs-plugin-zoom.min.js')?>"></script>
|
||||
<script src="<?=pihole.fileversion('vendor/bstreeview/bstreeview.min.js')?>"></script>
|
||||
</head>
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
</div>
|
||||
<div class="pull-left info">
|
||||
<p>Status</p>
|
||||
<span id="status"></span><br/>
|
||||
<span id="query_frequency"></span><br/>
|
||||
<span id="cpu"></span><br/>
|
||||
<span id="status"></span><br>
|
||||
<span id="query_frequency"></span><br>
|
||||
<span id="cpu"></span><br>
|
||||
<span id="memory"></span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -43,35 +43,43 @@
|
||||
<!-- Group Management -->
|
||||
<li class="menu-group<? if scriptname == 'groups' then ?> active<? end ?>">
|
||||
<a href="<?=webhome?>groups">
|
||||
<i class="fa fa-fw menu-icon fa-user-friends"></i> <span>Groups
|
||||
<span class="pull-right-container">
|
||||
<span class="label label-primary pull-right" id="num_groups" title="Number of enabled groups"></span>
|
||||
<i class="fa fa-fw menu-icon fa-user-friends"></i>
|
||||
<span>Groups
|
||||
<span class="pull-right-container">
|
||||
<span class="label label-primary pull-right" id="num_groups" title="Number of enabled groups"></span>
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="menu-group<? if scriptname == 'groups/clients' then ?> active<? end ?>">
|
||||
<a href="<?=webhome?>groups/clients">
|
||||
<i class="fa fa-fw menu-icon fa-laptop"></i> <span>Clients
|
||||
<span class="pull-right-container">
|
||||
<span class="label label-primary pull-right" id="num_clients" title="Number of defined clients"></span>
|
||||
<i class="fa fa-fw menu-icon fa-laptop"></i>
|
||||
<span>Clients
|
||||
<span class="pull-right-container">
|
||||
<span class="label label-primary pull-right" id="num_clients" title="Number of defined clients"></span>
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="menu-group<? if scriptname == 'groups/domains' then ?> active<? end ?>">
|
||||
<a href="<?=webhome?>groups/domains">
|
||||
<i class="fa fa-fw menu-icon fa-list"></i> <span>Domains
|
||||
<span class="pull-right-container">
|
||||
<span class="label bg-red pull-right" id="num_denied" title="Number of enabled deny rules (domains and regex)"></span>
|
||||
<span class="label bg-green pull-right" id="num_allowed" title="Number of enabled allow rules (domains and regex)"></span>
|
||||
<i class="fa fa-fw menu-icon fa-list"></i>
|
||||
<span>Domains
|
||||
<span class="pull-right-container">
|
||||
<span class="label bg-red pull-right" id="num_denied" title="Number of enabled deny rules (domains and regex)"></span>
|
||||
<span class="label bg-green pull-right" id="num_allowed" title="Number of enabled allow rules (domains and regex)"></span>
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="menu-group<? if scriptname == 'groups/lists' then ?> active<? end ?>">
|
||||
<a href="<?=webhome?>groups/lists">
|
||||
<i class="fa fa-fw menu-icon fa-shield-alt"></i> <span>Lists
|
||||
<span class="pull-right-container">
|
||||
<span class="label bg-blue pull-right" id="num_lists" title="Number of subscribed and enabled lists"></span>
|
||||
<span class="label bg-yellow pull-right" id="num_gravity" title="Total number of domains subscribed by your Pi-hole"></span>
|
||||
<i class="fa fa-fw menu-icon fa-shield-alt"></i>
|
||||
<span>Lists
|
||||
<span class="pull-right-container">
|
||||
<span class="label bg-blue pull-right" id="num_lists" title="Number of subscribed and enabled lists"></span>
|
||||
<span class="label bg-yellow pull-right" id="num_gravity" title="Total number of domains subscribed by your Pi-hole"></span>
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -194,7 +194,7 @@ mg.include('scripts/lua/settings_header.lp','r')
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
<div id="totp_div" class="has-feedback has-error">
|
||||
<div class="pwd-field form-group">
|
||||
<input type="text" size="6" maxlength="6" class="form-control totp_token" id="totp_code" placeholder=""/>
|
||||
<input type="text" size="6" maxlength="6" class="form-control totp_token" id="totp_code" placeholder="">
|
||||
</div>
|
||||
<i class="fa-solid fa-clock-rotate-left pwd-field form-control-feedback"></i>
|
||||
</div>
|
||||
|
||||
@@ -100,7 +100,7 @@ mg.include('scripts/lua/settings_header.lp','r')
|
||||
<strong>Note:</strong>
|
||||
<p>The target of a <code>CNAME</code> must be a domain that the Pi-hole already has in its cache or is authoritative for. This is a universal limitation of <code>CNAME</code> records.</p>
|
||||
<p>The reason for this is that Pi-hole will not send additional queries upstream when serving <code>CNAME</code> replies. As consequence, if you set a target that isn't already known, the reply to the client may be incomplete. Pi-hole just returns the information it knows at the time of the query. This results in certain limitations for <code>CNAME</code> targets,
|
||||
for instance, only <i>active</i> DHCP leases work as targets - mere DHCP <i>leases</i> aren't sufficient as they aren't (yet) valid DNS records.</p>
|
||||
for instance, only <em>active</em> DHCP leases work as targets - mere DHCP <i>leases</i> aren't sufficient as they aren't (yet) valid DNS records.</p>
|
||||
<p>Additionally, you can't <code>CNAME</code> external domains (<code>bing.com</code> to <code>google.com</code>) successfully as this could result in invalid SSL certificate errors when the target server does not serve content for the requested domain.</p>
|
||||
<p>Adding/removing local CNAME records will restart the DNS server.</p>
|
||||
</div>
|
||||
|
||||
@@ -89,7 +89,7 @@ mg.include('scripts/lua/settings_header.lp','r')
|
||||
<div id="modal-import-gravity" style="display:none">
|
||||
<div class="alert alert-info alert-dismissible">
|
||||
<h4><i class="icon fa fa-fw fa-info-circle"></i> Please run gravity</h4>
|
||||
<p>Use <a href='/admin/gravity'>Tools → Gravity</a> or run <code>pihole -g</code> to update your lists.</p>
|
||||
<p>Use <a href='/admin/gravity'>Tools → Update Gravity</a> or run <code>pihole -g</code> to update your lists.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="modal-import-info-message"></div>
|
||||
|
||||
@@ -1094,10 +1094,6 @@ table.dataTable tbody > tr > .selected {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.faint-border {
|
||||
border-color: rgba(127, 127, 127, 0.1);
|
||||
}
|
||||
|
||||
.pre-scrollable {
|
||||
/* use dynamic unit to account for mobile browser interface height */
|
||||
max-height: max(195px, 100dvh - 170px);
|
||||
|
||||
@@ -621,7 +621,7 @@ kbd {
|
||||
background: #181c20;
|
||||
font-size: 14px;
|
||||
}
|
||||
#output b.log-red {
|
||||
#output .log-red {
|
||||
background: #b23;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
@@ -294,7 +294,7 @@ a:hover {
|
||||
#output {
|
||||
font-size: 14px;
|
||||
}
|
||||
#output b.log-red {
|
||||
#output .log-red {
|
||||
background: #c00;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
@@ -535,6 +535,11 @@ p.login-box-msg,
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.dropdown.bootstrap-select {
|
||||
border: none;
|
||||
background: none;
|
||||
}
|
||||
|
||||
.bootstrap-select > .dropdown-toggle.bs-placeholder,
|
||||
.bootstrap-select > .dropdown-toggle.bs-placeholder:active,
|
||||
.bootstrap-select > .dropdown-toggle.bs-placeholder:focus {
|
||||
@@ -610,14 +615,6 @@ p.login-box-msg,
|
||||
flex: 1 1 auto;
|
||||
}
|
||||
|
||||
#pihole-diagnosis {
|
||||
min-width: 50px;
|
||||
}
|
||||
|
||||
#pihole-diagnosis svg {
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
.warning-count {
|
||||
position: relative;
|
||||
margin: 0;
|
||||
@@ -1022,17 +1019,12 @@ p.login-box-msg,
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.user-panel .fa-circle path {
|
||||
stroke: rgba(0, 0, 0, 0.5);
|
||||
stroke-width: 5%;
|
||||
.user-panel > .info i {
|
||||
text-shadow: 0 0 1px black;
|
||||
}
|
||||
|
||||
.user-panel .svg-inline--fa {
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
||||
.user-panel svg.text-orange,
|
||||
.user-panel svg.text-red {
|
||||
.user-panel > .info i.text-orange,
|
||||
.user-panel > .info i.text-red {
|
||||
animation: fire 1s ease-in-out 0s infinite;
|
||||
}
|
||||
|
||||
@@ -1155,7 +1147,7 @@ footer a:focus {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.sidebar-collapse .sidebar-menu svg {
|
||||
.sidebar-collapse .sidebar-menu i {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@@ -2079,11 +2071,6 @@ td.highlight {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
/*** size correction to fit in one line - Settings/DNS ***/
|
||||
#dns .col-md-11 {
|
||||
width: 84%;
|
||||
}
|
||||
|
||||
/*** add style to the information/about dropdown ***/
|
||||
.navbar-nav > .user-menu > .dropdown-menu > .user-header,
|
||||
.navbar-nav > .user-menu > .dropdown-menu > .user-footer {
|
||||
|
||||
Reference in New Issue
Block a user