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:
@@ -21,7 +21,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3.3.0
|
||||
uses: actions/checkout@v3.5.2
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
steps:
|
||||
-
|
||||
name: Checkout repository
|
||||
uses: actions/checkout@v3.3.0
|
||||
uses: actions/checkout@v3.5.2
|
||||
-
|
||||
name: Spell-Checking
|
||||
uses: codespell-project/actions-codespell@master
|
||||
|
||||
@@ -9,6 +9,6 @@ jobs:
|
||||
name: editorconfig-checker
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3.3.0
|
||||
- uses: actions/checkout@v3.5.2
|
||||
- uses: editorconfig-checker/action-editorconfig-checker@main
|
||||
- run: editorconfig-checker
|
||||
|
||||
@@ -13,7 +13,7 @@ jobs:
|
||||
issues: write
|
||||
|
||||
steps:
|
||||
- uses: actions/stale@v7.0.0
|
||||
- uses: actions/stale@v8.0.0
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
days-before-stale: 30
|
||||
|
||||
@@ -17,7 +17,7 @@ jobs:
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- uses: actions/stale@v7.0.0
|
||||
- uses: actions/stale@v8.0.0
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
# Do not automatically mark PR/issue as stale
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
name: Syncing branches
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3.3.0
|
||||
uses: actions/checkout@v3.5.2
|
||||
- name: Opening pull request
|
||||
run: gh pr create -B devel -H master --title 'Sync master back into development' --body 'Created by Github action' --label 'internal'
|
||||
env:
|
||||
|
||||
@@ -19,7 +19,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v3.3.0
|
||||
uses: actions/checkout@v3.5.2
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v3.6.0
|
||||
|
||||
Generated
+9
-6
@@ -8,16 +8,16 @@
|
||||
"packages": [
|
||||
{
|
||||
"name": "phpstan/phpstan",
|
||||
"version": "1.9.14",
|
||||
"version": "1.10.14",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpstan.git",
|
||||
"reference": "e5fcc96289cf737304286a9b505fbed091f02e58"
|
||||
"reference": "d232901b09e67538e5c86a724be841bea5768a7c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/e5fcc96289cf737304286a9b505fbed091f02e58",
|
||||
"reference": "e5fcc96289cf737304286a9b505fbed091f02e58",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/d232901b09e67538e5c86a724be841bea5768a7c",
|
||||
"reference": "d232901b09e67538e5c86a724be841bea5768a7c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -46,8 +46,11 @@
|
||||
"static analysis"
|
||||
],
|
||||
"support": {
|
||||
"docs": "https://phpstan.org/user-guide/getting-started",
|
||||
"forum": "https://github.com/phpstan/phpstan/discussions",
|
||||
"issues": "https://github.com/phpstan/phpstan/issues",
|
||||
"source": "https://github.com/phpstan/phpstan/tree/1.9.14"
|
||||
"security": "https://github.com/phpstan/phpstan/security/policy",
|
||||
"source": "https://github.com/phpstan/phpstan-src"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -63,7 +66,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-01-19T10:47:09+00:00"
|
||||
"time": "2023-04-19T13:47:27+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
|
||||
@@ -10,11 +10,6 @@
|
||||
$indexpage = true;
|
||||
require 'scripts/pi-hole/php/header_authenticated.php';
|
||||
?>
|
||||
<!-- Sourceing CSS colors from stylesheet to be used in JS code -->
|
||||
<span class="queries-permitted"></span>
|
||||
<span class="queries-blocked"></span>
|
||||
<span class="graphs-grid"></span>
|
||||
<span class="graphs-ticks"></span>
|
||||
<!-- Small boxes (Stat box) -->
|
||||
<div class="row">
|
||||
<div class="col-lg-3 col-sm-6">
|
||||
|
||||
Generated
+75
-102
@@ -9,11 +9,11 @@
|
||||
"version": "1.0.0",
|
||||
"license": "EUPL-1.2",
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^10.4.13",
|
||||
"eslint-plugin-compat": "^4.0.2",
|
||||
"postcss": "^8.4.21",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"eslint-plugin-compat": "^4.1.4",
|
||||
"postcss": "^8.4.23",
|
||||
"postcss-cli": "^10.1.0",
|
||||
"prettier": "2.8.3",
|
||||
"prettier": "2.8.8",
|
||||
"xo": "^0.53.1"
|
||||
}
|
||||
},
|
||||
@@ -244,9 +244,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@mdn/browser-compat-data": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz",
|
||||
"integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==",
|
||||
"version": "5.2.49",
|
||||
"resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.2.49.tgz",
|
||||
"integrity": "sha512-tXJUP9EFcfeTcn3hpn616qtcbaLMrhqfgsljRnIv/qYckL8ywLodk7Cj3oJlZed3zWLZLnE9LHHsfpO8w4yJuw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@nodelib/fs.scandir": {
|
||||
@@ -284,6 +284,12 @@
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/@tsconfig/node14": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
|
||||
"integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/eslint": {
|
||||
"version": "7.29.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz",
|
||||
@@ -706,24 +712,18 @@
|
||||
}
|
||||
},
|
||||
"node_modules/ast-metadata-inferer": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz",
|
||||
"integrity": "sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==",
|
||||
"version": "0.8.0",
|
||||
"resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.8.0.tgz",
|
||||
"integrity": "sha512-jOMKcHht9LxYIEQu+RVd22vtgrPaVCtDRQ/16IGmurdzxvYbDd5ynxjnyrzLnieG96eTcAyaoj/wN/4/1FyyeA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@mdn/browser-compat-data": "^3.3.14"
|
||||
"@mdn/browser-compat-data": "^5.2.34"
|
||||
}
|
||||
},
|
||||
"node_modules/ast-metadata-inferer/node_modules/@mdn/browser-compat-data": {
|
||||
"version": "3.3.14",
|
||||
"resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz",
|
||||
"integrity": "sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/autoprefixer": {
|
||||
"version": "10.4.13",
|
||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz",
|
||||
"integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==",
|
||||
"version": "10.4.14",
|
||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz",
|
||||
"integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -736,8 +736,8 @@
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"browserslist": "^4.21.4",
|
||||
"caniuse-lite": "^1.0.30001426",
|
||||
"browserslist": "^4.21.5",
|
||||
"caniuse-lite": "^1.0.30001464",
|
||||
"fraction.js": "^4.2.0",
|
||||
"normalize-range": "^0.1.2",
|
||||
"picocolors": "^1.0.0",
|
||||
@@ -803,9 +803,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/browserslist": {
|
||||
"version": "4.21.4",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
|
||||
"integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
|
||||
"version": "4.21.5",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
|
||||
"integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -818,10 +818,10 @@
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"caniuse-lite": "^1.0.30001400",
|
||||
"electron-to-chromium": "^1.4.251",
|
||||
"node-releases": "^2.0.6",
|
||||
"update-browserslist-db": "^1.0.9"
|
||||
"caniuse-lite": "^1.0.30001449",
|
||||
"electron-to-chromium": "^1.4.284",
|
||||
"node-releases": "^2.0.8",
|
||||
"update-browserslist-db": "^1.0.10"
|
||||
},
|
||||
"bin": {
|
||||
"browserslist": "cli.js"
|
||||
@@ -923,9 +923,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001442",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz",
|
||||
"integrity": "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==",
|
||||
"version": "1.0.30001476",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001476.tgz",
|
||||
"integrity": "sha512-JmpktFppVSvyUN4gsLS0bShY2L9ZUslHLE72vgemBkS43JD2fOvKTKs+GtRwuxrtRGnwJFW0ye7kWRRlLJS9vQ==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -935,6 +935,10 @@
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -1096,17 +1100,6 @@
|
||||
"integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/core-js": {
|
||||
"version": "3.27.1",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.27.1.tgz",
|
||||
"integrity": "sha512-GutwJLBChfGCpwwhbYoqfv03LAfmiz7e7D/BNxzeMxwQf10GRSzqiOjx7AmtEk+heiD/JWmBuyBPgFtx0Sg1ww==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/core-js"
|
||||
}
|
||||
},
|
||||
"node_modules/cosmiconfig": {
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
|
||||
@@ -1678,22 +1671,22 @@
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-compat": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.0.2.tgz",
|
||||
"integrity": "sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==",
|
||||
"version": "4.1.4",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.1.4.tgz",
|
||||
"integrity": "sha512-RxySWBmzfIROLFKgeJBJue2BU/6vM2KJWXWAUq+oW4QtrsZXRxbjgxmO1OfF3sHcRuuIenTS/wgo3GyUWZF24w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@mdn/browser-compat-data": "^4.1.5",
|
||||
"ast-metadata-inferer": "^0.7.0",
|
||||
"browserslist": "^4.16.8",
|
||||
"caniuse-lite": "^1.0.30001304",
|
||||
"core-js": "^3.16.2",
|
||||
"@mdn/browser-compat-data": "^5.2.47",
|
||||
"@tsconfig/node14": "^1.0.3",
|
||||
"ast-metadata-inferer": "^0.8.0",
|
||||
"browserslist": "^4.21.5",
|
||||
"caniuse-lite": "^1.0.30001473",
|
||||
"find-up": "^5.0.0",
|
||||
"lodash.memoize": "4.1.2",
|
||||
"semver": "7.3.5"
|
||||
"semver": "7.3.8"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=9.x"
|
||||
"node": ">=14.x"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
|
||||
@@ -1849,21 +1842,6 @@
|
||||
"eslint": ">=7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-n/node_modules/semver": {
|
||||
"version": "7.3.8",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
|
||||
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lru-cache": "^6.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-no-use-extend-native": {
|
||||
"version": "0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-no-use-extend-native/-/eslint-plugin-no-use-extend-native-0.5.0.tgz",
|
||||
@@ -1931,21 +1909,6 @@
|
||||
"eslint": ">=8.23.1"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-unicorn/node_modules/semver": {
|
||||
"version": "7.3.8",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
|
||||
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lru-cache": "^6.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-rule-docs": {
|
||||
"version": "1.1.235",
|
||||
"resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.235.tgz",
|
||||
@@ -3917,10 +3880,16 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/nanoid": {
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
|
||||
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
|
||||
"version": "3.3.6",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
|
||||
"integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"bin": {
|
||||
"nanoid": "bin/nanoid.cjs"
|
||||
},
|
||||
@@ -4314,9 +4283,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"version": "8.4.21",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
|
||||
"integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
|
||||
"version": "8.4.23",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz",
|
||||
"integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -4326,10 +4295,14 @@
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/postcss"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.4",
|
||||
"nanoid": "^3.3.6",
|
||||
"picocolors": "^1.0.0",
|
||||
"source-map-js": "^1.0.2"
|
||||
},
|
||||
@@ -4431,9 +4404,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "2.8.3",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz",
|
||||
"integrity": "sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==",
|
||||
"version": "2.8.8",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
|
||||
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"prettier": "bin-prettier.js"
|
||||
@@ -4904,9 +4877,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/semver": {
|
||||
"version": "7.3.5",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
|
||||
"integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
|
||||
"version": "7.3.8",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
|
||||
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lru-cache": "^6.0.0"
|
||||
@@ -5465,9 +5438,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/webpack": {
|
||||
"version": "5.75.0",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz",
|
||||
"integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==",
|
||||
"version": "5.76.3",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.3.tgz",
|
||||
"integrity": "sha512-18Qv7uGPU8b2vqGeEEObnfICyw2g39CHlDEK4I7NK13LOur1d0HGmGNKGT58Eluwddpn3oEejwvBPoP4M7/KSA==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
@@ -6500,9 +6473,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/yaml": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz",
|
||||
"integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==",
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz",
|
||||
"integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 14"
|
||||
|
||||
+4
-4
@@ -25,11 +25,11 @@
|
||||
"testpr": "npm run prettier:fix && git diff --ws-error-highlight=all --color=always --exit-code && npm run xo:check"
|
||||
},
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^10.4.13",
|
||||
"eslint-plugin-compat": "^4.0.2",
|
||||
"postcss": "^8.4.21",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"eslint-plugin-compat": "^4.1.4",
|
||||
"postcss": "^8.4.23",
|
||||
"postcss-cli": "^10.1.0",
|
||||
"prettier": "2.8.3",
|
||||
"prettier": "2.8.8",
|
||||
"xo": "^0.53.1"
|
||||
},
|
||||
"browserslist": [
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -12,6 +12,11 @@
|
||||
--datatable-bgcolor: rgba(64, 76, 88, 0.8);
|
||||
}
|
||||
|
||||
/* fix #2554: browser not detecting dark mode */
|
||||
html {
|
||||
color-scheme: dark;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #353c42;
|
||||
color: #bec5cb;
|
||||
|
||||
@@ -32,6 +32,8 @@ _______|_______/__/ ____ \__\__|___\__\__|___\__\____
|
||||
/* User-Agent Style */
|
||||
html {
|
||||
background-color: #181a1b !important;
|
||||
/* fix #2554: browser not detecting dark mode */
|
||||
color-scheme: dark;
|
||||
}
|
||||
html,
|
||||
body,
|
||||
|
||||
@@ -0,0 +1,955 @@
|
||||
/* Pi-hole: A black hole for Internet advertisements
|
||||
* (c) 2020 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. */
|
||||
|
||||
:root {
|
||||
--primary-color: #0077c7;
|
||||
--primary-color-darker: #101820;
|
||||
--darker-bgcolor: #101c20;
|
||||
|
||||
--main-text-color: #d2dde1;
|
||||
|
||||
--info-color: var(--primary-color);
|
||||
--danger-color: #a83333;
|
||||
--warning-color: #a86600;
|
||||
--success-color: #027744;
|
||||
|
||||
--menu-hover-bgcolor: var(--primary-color-darker);
|
||||
--submenu-hover-bgcolor: #2d363f;
|
||||
|
||||
--network-recent: #184050;
|
||||
--network-old: #183440;
|
||||
--network-older: #182840;
|
||||
--network-never: #182028;
|
||||
|
||||
--allowed-color: #3c7;
|
||||
--blocked-color: var(--danger-color);
|
||||
|
||||
--datatable-bgcolor: rgba(18, 44, 68, 0.3);
|
||||
}
|
||||
|
||||
/* removing transition for every element, to avoid unnecessary movement */
|
||||
* {
|
||||
transition: none !important;
|
||||
}
|
||||
|
||||
/* fix #2554: browser not detecting dark mode */
|
||||
html {
|
||||
color-scheme: dark;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: 15px;
|
||||
color: var(--main-text-color);
|
||||
}
|
||||
.layout-boxed {
|
||||
background: #181c20;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #92bed6;
|
||||
}
|
||||
a:hover,
|
||||
a:active {
|
||||
color: #60a6cc;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
h4 {
|
||||
color: #44def1;
|
||||
}
|
||||
|
||||
.page-header {
|
||||
border-color: #202830;
|
||||
}
|
||||
.page-header small {
|
||||
color: currentColor;
|
||||
}
|
||||
|
||||
.content-header > .breadcrumb > li > a {
|
||||
color: var(--main-text-color);
|
||||
}
|
||||
|
||||
.table > thead > tr > th,
|
||||
.table > tbody > tr > th,
|
||||
.table > tfoot > tr > th,
|
||||
.table > thead > tr > td,
|
||||
.table > tbody > tr > td,
|
||||
.table > tfoot > tr > td {
|
||||
border-top: 0;
|
||||
}
|
||||
.table > thead > tr.odd,
|
||||
.table > tbody > tr.odd,
|
||||
.table > tfoot > tr.odd {
|
||||
background-color: #1d252d;
|
||||
}
|
||||
.table > thead > tr.odd:hover,
|
||||
.table > tbody > tr.odd:hover,
|
||||
.table > tfoot > tr.odd:hover,
|
||||
.table > thead > tr.even:hover,
|
||||
.table > tbody > tr.even:hover,
|
||||
.table > tfoot > tr.even:hover {
|
||||
background-color: #1a2026;
|
||||
}
|
||||
.table-bordered,
|
||||
.table-bordered > thead > tr > th,
|
||||
.table-bordered > tbody > tr > th,
|
||||
.table-bordered > tfoot > tr > th,
|
||||
.table-bordered > thead > tr > td,
|
||||
.table-bordered > tbody > tr > td,
|
||||
.table-bordered > tfoot > tr > td {
|
||||
border: 1px solid #000;
|
||||
}
|
||||
|
||||
.dataTables_wrapper input[type="search"] {
|
||||
border-radius: 4px;
|
||||
background-color: #3c4652;
|
||||
border: 0;
|
||||
color: var(--main-text-color);
|
||||
}
|
||||
|
||||
.pagination li > a {
|
||||
color: var(--main-text-color);
|
||||
background-color: #3c4652;
|
||||
border-color: #202830;
|
||||
}
|
||||
.pagination > .disabled > a,
|
||||
.pagination > .disabled > a:focus,
|
||||
.pagination > .disabled > a:hover,
|
||||
.pagination > .disabled > span,
|
||||
.pagination > .disabled > span:focus,
|
||||
.pagination > .disabled > span:hover {
|
||||
cursor: not-allowed;
|
||||
color: #9ab;
|
||||
background-color: #3c4652;
|
||||
border-color: #202830;
|
||||
}
|
||||
.pagination > li > a:focus,
|
||||
.pagination > li > a:hover,
|
||||
.pagination > li > span:focus,
|
||||
.pagination > li > span:hover {
|
||||
z-index: 2;
|
||||
color: #fff;
|
||||
background-color: #54606b;
|
||||
border-color: #202830;
|
||||
}
|
||||
.pagination > .active > a,
|
||||
.pagination > .active > a:focus,
|
||||
.pagination > .active > a:hover,
|
||||
.pagination > .active > span,
|
||||
.pagination > .active > span:focus,
|
||||
.pagination > .active > span:hover {
|
||||
background-color: var(--primary-color);
|
||||
border-color: #202830;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.wrapper,
|
||||
.main-sidebar,
|
||||
.left-side {
|
||||
background-color: #202830;
|
||||
}
|
||||
.user-panel > .info,
|
||||
.user-panel > .info > a {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.logo-img,
|
||||
.loginpage-logo {
|
||||
filter: saturate(0) brightness(4.6) contrast(0.9);
|
||||
}
|
||||
|
||||
.sidebar-menu > li.header {
|
||||
color: #808a90;
|
||||
background-color: var(--menu-hover-bgcolor);
|
||||
}
|
||||
.sidebar-menu > li > a {
|
||||
border-left: 3px solid transparent;
|
||||
}
|
||||
.sidebar-menu > li:hover > a,
|
||||
.sidebar-menu > li > a:focus,
|
||||
.sidebar-menu > li.active > a {
|
||||
color: #fff;
|
||||
background-color: var(--menu-hover-bgcolor);
|
||||
border-left-color: #fff;
|
||||
}
|
||||
.sidebar-menu > li > .treeview-menu {
|
||||
margin: 0 3px;
|
||||
background-color: var(--submenu-hover-bgcolor);
|
||||
}
|
||||
|
||||
.sidebar a {
|
||||
color: var(--main-text-color);
|
||||
}
|
||||
.sidebar a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.treeview-menu {
|
||||
padding: 0;
|
||||
}
|
||||
.treeview-menu > li > a {
|
||||
padding: 5px 5px 5px 17px;
|
||||
}
|
||||
.treeview-menu > li.active > a,
|
||||
.treeview-menu > li > a:hover,
|
||||
.treeview-menu > li > a:focus {
|
||||
color: #fff;
|
||||
background: var(--menu-hover-bgcolor);
|
||||
}
|
||||
|
||||
/* "Donate" sidebar button */
|
||||
.sidebar-menu > li.menu-donate:hover > a,
|
||||
.sidebar-menu > li.menu-donate > a:focus {
|
||||
color: #fff;
|
||||
background-color: #a03333;
|
||||
}
|
||||
|
||||
.box,
|
||||
.box-footer,
|
||||
.info-box,
|
||||
.box-comment,
|
||||
.comment-text,
|
||||
.comment-text .username {
|
||||
color: var(--main-text-color);
|
||||
background-color: #202830;
|
||||
}
|
||||
.box-comments .box-comment {
|
||||
border-bottom-color: #3c4652;
|
||||
}
|
||||
.box-footer {
|
||||
border-top: 1px solid #3c4652;
|
||||
}
|
||||
.box-header.with-border {
|
||||
border-bottom: 1px solid #3c4652;
|
||||
}
|
||||
.box-solid,
|
||||
.box {
|
||||
border: 1px solid #202830;
|
||||
}
|
||||
|
||||
.box > .box-header,
|
||||
.box > .box-header .btn,
|
||||
.box-solid > .box-header,
|
||||
.box-solid > .box-header .btn {
|
||||
color: var(--main-text-color);
|
||||
}
|
||||
|
||||
.box.box-info,
|
||||
.box.box-primary,
|
||||
.box.box-success,
|
||||
.box.box-warning,
|
||||
.box.box-danger {
|
||||
border-top-width: 3px;
|
||||
}
|
||||
.box.box-info {
|
||||
border-top-color: #00c0ef;
|
||||
}
|
||||
.box.box-primary {
|
||||
border-top-color: #075383;
|
||||
}
|
||||
.box.box-success {
|
||||
border-top-color: #00a65a;
|
||||
}
|
||||
.box.box-warning {
|
||||
border-top-color: #f94;
|
||||
}
|
||||
.box.box-danger {
|
||||
border-top-color: #dd4b39;
|
||||
}
|
||||
|
||||
.main-header .navbar {
|
||||
background-color: #202830;
|
||||
}
|
||||
.main-header .navbar .nav > li > a,
|
||||
.main-header .navbar .nav > li > .navbar-text {
|
||||
color: #fff;
|
||||
max-height: 50px;
|
||||
}
|
||||
.main-header .navbar .nav > li > a:hover,
|
||||
.main-header .navbar .nav > li > a:active,
|
||||
.main-header .navbar .nav > li > a:focus,
|
||||
.main-header .navbar .nav .open > a,
|
||||
.main-header .navbar .nav .open > a:hover,
|
||||
.main-header .navbar .nav .open > a:focus {
|
||||
background-color: var(--menu-hover-bgcolor);
|
||||
color: #f6f6f6;
|
||||
}
|
||||
|
||||
.main-header .navbar .sidebar-toggle {
|
||||
color: #fff;
|
||||
}
|
||||
.main-header .navbar .sidebar-toggle:hover {
|
||||
color: #f6f6f6;
|
||||
background-color: var(--menu-hover-bgcolor);
|
||||
}
|
||||
.sidebar-toggle-svg:hover {
|
||||
color: #fff;
|
||||
background: var(--menu-hover-bgcolor);
|
||||
}
|
||||
|
||||
.timeline li .timeline-item {
|
||||
color: var(--main-text-color);
|
||||
background-color: #202830;
|
||||
border-color: #3c4652;
|
||||
}
|
||||
.timeline li .timeline-header {
|
||||
border-bottom-color: #3c4652;
|
||||
}
|
||||
|
||||
.nav-stacked > li > a {
|
||||
color: var(--main-text-color);
|
||||
}
|
||||
.nav-stacked > li > a:hover {
|
||||
color: white;
|
||||
background-color: #1a2026;
|
||||
}
|
||||
|
||||
.content-wrapper,
|
||||
.right-side {
|
||||
background-color: #3c4652;
|
||||
}
|
||||
|
||||
.main-footer,
|
||||
.nav-tabs-custom {
|
||||
background-color: #202830;
|
||||
border-top-color: #3c4652;
|
||||
color: var(--main-text-color);
|
||||
}
|
||||
.main-footer .nav-tabs,
|
||||
.nav-tabs-custom .nav-tabs {
|
||||
background-color: var(--submenu-hover-bgcolor);
|
||||
border-bottom-color: #2f363b;
|
||||
}
|
||||
.main-footer .tab-content,
|
||||
.nav-tabs-custom .tab-content {
|
||||
background-color: var(--submenu-hover-bgcolor);
|
||||
}
|
||||
|
||||
.nav-tabs-custom > .nav-tabs {
|
||||
background: var(--primary-color-darker);
|
||||
}
|
||||
.nav-tabs-custom > .nav-tabs > li {
|
||||
margin-right: 1px;
|
||||
color: var(--main-text-color);
|
||||
}
|
||||
.nav-tabs-custom > .nav-tabs > li.active {
|
||||
border-top-color: var(--primary-color);
|
||||
}
|
||||
.nav-tabs-custom > .nav-tabs > li:hover > a,
|
||||
.nav-tabs-custom > .nav-tabs > li.active > a,
|
||||
.nav-tabs-custom > .nav-tabs > li.active:hover > a {
|
||||
border-left-color: var(--submenu-hover-bgcolor);
|
||||
border-right-color: var(--submenu-hover-bgcolor);
|
||||
background-color: var(--submenu-hover-bgcolor);
|
||||
color: #fff;
|
||||
}
|
||||
.nav-tabs-custom > .nav-tabs > li:not(.active):hover {
|
||||
border-top-color: #9ab;
|
||||
background-color: transparent;
|
||||
}
|
||||
.nav-tabs-custom > .nav-tabs > li > a {
|
||||
color: #9ab;
|
||||
}
|
||||
.nav-tabs-custom > .nav-tabs > li > a:focus {
|
||||
color: #cde;
|
||||
border-top-color: var(--primary-color-darker);
|
||||
}
|
||||
|
||||
input,
|
||||
select,
|
||||
select.form-control,
|
||||
.form-group .input-group-addon,
|
||||
.input-group .input-group-addon,
|
||||
.form-group input,
|
||||
.input-group input,
|
||||
.form-group textarea,
|
||||
.input-group textarea,
|
||||
.daterangepicker select.hourselect,
|
||||
.daterangepicker select.minuteselect,
|
||||
.daterangepicker select.secondselect,
|
||||
.daterangepicker select.ampmselect,
|
||||
.form-control,
|
||||
div.dataTables_wrapper div.dataTables_length select {
|
||||
background-color: #2d363f;
|
||||
color: var(--main-text-color);
|
||||
border: 1px solid #3c4652;
|
||||
}
|
||||
|
||||
.list-group {
|
||||
color: var(--main-text-color);
|
||||
background-color: #202830;
|
||||
}
|
||||
.list-group .list-group-item {
|
||||
border-color: #3c4652;
|
||||
background-color: #202830;
|
||||
}
|
||||
.input-group .input-group-addon {
|
||||
background: #3c4652;
|
||||
}
|
||||
|
||||
.select2 .select2-selection {
|
||||
background-color: #3c4652;
|
||||
color: var(--main-text-color);
|
||||
border: 1px solid #3c4652;
|
||||
}
|
||||
.select2 .select2-selection .select2-container--default,
|
||||
.select2 .select2-selection .select2-selection--single,
|
||||
.select2 .select2-selection .select2-selection--multiple,
|
||||
.select2 .select2-selection .select2-selection__rendered {
|
||||
color: var(--main-text-color);
|
||||
}
|
||||
.select2-dropdown {
|
||||
background-color: #3c4652;
|
||||
color: var(--main-text-color);
|
||||
border: 1px solid #3c4652;
|
||||
}
|
||||
.select2-dropdown .select2-search__field {
|
||||
background-color: #202830;
|
||||
color: var(--main-text-color);
|
||||
border: 1px solid #3c4652;
|
||||
}
|
||||
.select2-container--default.select2-container--open {
|
||||
background-color: #202830;
|
||||
}
|
||||
|
||||
.not-used {
|
||||
background-color: #eee;
|
||||
}
|
||||
.not-used:hover {
|
||||
background-color: #c5c5c5;
|
||||
}
|
||||
.used {
|
||||
background-color: #fff;
|
||||
}
|
||||
.used:hover {
|
||||
background-color: #ddd;
|
||||
}
|
||||
|
||||
.graphs-grid {
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
.graphs-ticks {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.progress {
|
||||
background-color: #181c20;
|
||||
}
|
||||
|
||||
.queries-permitted {
|
||||
background-color: var(--allowed-color);
|
||||
}
|
||||
.queries-blocked {
|
||||
background-color: var(--blocked-color);
|
||||
}
|
||||
|
||||
code,
|
||||
pre {
|
||||
padding: 2px 4px;
|
||||
font-size: 90%;
|
||||
color: var(--main-text-color);
|
||||
background-color: #3c4652;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
kbd {
|
||||
background-color: #3c4652;
|
||||
}
|
||||
|
||||
/* Used in the Query Log table */
|
||||
.text-green-light {
|
||||
color: #8fa !important;
|
||||
}
|
||||
.text-green {
|
||||
color: #17cc7c !important;
|
||||
}
|
||||
.text-orange {
|
||||
color: #f80 !important;
|
||||
}
|
||||
.text-red {
|
||||
color: #f65 !important;
|
||||
}
|
||||
.text-vivid-blue {
|
||||
color: #39f !important;
|
||||
}
|
||||
.text-muted {
|
||||
color: #808890;
|
||||
}
|
||||
|
||||
.warning-count {
|
||||
color: #000;
|
||||
background: #f94;
|
||||
}
|
||||
|
||||
.sidebar .svg-inline--fa.text-red {
|
||||
color: #c00 !important;
|
||||
}
|
||||
|
||||
.btn-default {
|
||||
box-shadow: none;
|
||||
background-color: #3c4652;
|
||||
color: #bec5cb;
|
||||
border: 1px solid #3c4652;
|
||||
}
|
||||
|
||||
.btn-default:hover,
|
||||
.btn-default:active,
|
||||
.btn-default.hover {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background-color: var(--primary-color);
|
||||
border-color: var(--primary-color);
|
||||
color: #fff;
|
||||
}
|
||||
.btn-primary:active,
|
||||
.btn-primary:focus,
|
||||
.btn-primary.hover {
|
||||
background-color: var(--primary-color-darker);
|
||||
}
|
||||
.btn-primary:hover {
|
||||
color: var(--primary-color);
|
||||
background-color: #fff;
|
||||
border-color: var(--primary-color);
|
||||
}
|
||||
|
||||
.btn-info {
|
||||
background: var(--info-color);
|
||||
border-color: var(--info-color) !important;
|
||||
}
|
||||
.btn-danger {
|
||||
background: var(--danger-color);
|
||||
border-color: var(--danger-color) !important;
|
||||
}
|
||||
.btn-warning {
|
||||
background: var(--warning-color);
|
||||
border-color: var(--warning-color) !important;
|
||||
}
|
||||
.btn-success {
|
||||
background: var(--success-color);
|
||||
border-color: var(--success-color) !important;
|
||||
}
|
||||
|
||||
.btn-info:hover {
|
||||
color: var(--info-color);
|
||||
background: #fff;
|
||||
}
|
||||
.btn-danger:hover {
|
||||
color: var(--danger-color);
|
||||
background: #fff;
|
||||
}
|
||||
.btn-warning:hover {
|
||||
color: var(--warning-color);
|
||||
background: #fff;
|
||||
}
|
||||
.btn-success:hover {
|
||||
color: var(--success-color);
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.btn-blacklist,
|
||||
.btn-whitelist,
|
||||
.btn-audit {
|
||||
background: #111;
|
||||
}
|
||||
.btn-blacklist:hover {
|
||||
color: #000 !important;
|
||||
background: #f65;
|
||||
border-color: #000;
|
||||
}
|
||||
.btn-whitelist:hover {
|
||||
color: #000 !important;
|
||||
background: #17cc7c;
|
||||
border-color: #000;
|
||||
}
|
||||
.btn-audit:hover {
|
||||
color: #000 !important;
|
||||
background: #f80;
|
||||
border-color: #000;
|
||||
}
|
||||
|
||||
.datatable-bt:hover,
|
||||
.datatable-bt:active:hover {
|
||||
background: var(--primary-color);
|
||||
border-color: var(--primary-color);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/* Used in debug log page */
|
||||
.log-red {
|
||||
color: #f76;
|
||||
}
|
||||
.log-green {
|
||||
color: #4c4;
|
||||
}
|
||||
.log-yellow {
|
||||
color: #fb0;
|
||||
}
|
||||
.log-blue {
|
||||
color: #48f;
|
||||
}
|
||||
.log-purple {
|
||||
color: #b8e;
|
||||
}
|
||||
.log-cyan {
|
||||
color: #0df;
|
||||
}
|
||||
.log-gray {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
#output {
|
||||
border-color: #505458;
|
||||
background: #181c20;
|
||||
font-size: 14px;
|
||||
}
|
||||
#output b.log-red {
|
||||
background: #b23;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/* Used by the long-term pages */
|
||||
.daterangepicker {
|
||||
border-radius: 4px;
|
||||
border: 1px solid #fff;
|
||||
color: var(--primary-color-darker);
|
||||
}
|
||||
.daterangepicker .ranges {
|
||||
border-radius: 3px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.daterangepicker .ranges li:hover {
|
||||
background-color: var(--primary-color-darker);
|
||||
color: #fff;
|
||||
}
|
||||
.daterangepicker .ranges li.active {
|
||||
background-color: var(--primary-color); /* Color also used in table pagination */
|
||||
}
|
||||
.daterangepicker .calendar-table {
|
||||
background-color: #3e464c;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #3c4652;
|
||||
}
|
||||
.daterangepicker td.off,
|
||||
.daterangepicker td.off.in-range,
|
||||
.daterangepicker td.off.start-date,
|
||||
.daterangepicker td.off.end-date {
|
||||
background-color: #485158;
|
||||
}
|
||||
.daterangepicker td.available:hover,
|
||||
.daterangepicker th.available:hover {
|
||||
background-color: #1a2026;
|
||||
}
|
||||
.daterangepicker td.active,
|
||||
.daterangepicker td.active:hover,
|
||||
.daterangepicker td.in-range:hover {
|
||||
background-color: #225e92;
|
||||
}
|
||||
.daterangepicker td.in-range {
|
||||
background-color: #1a2026;
|
||||
color: var(--main-text-color);
|
||||
}
|
||||
|
||||
/*** Overwrite chrome's input field auto-filling ***/
|
||||
input:-webkit-autofill,
|
||||
input:-webkit-autofill:focus,
|
||||
textarea:-webkit-autofill,
|
||||
select:-webkit-autofill {
|
||||
-webkit-text-fill-color: var(--main-text-color) !important;
|
||||
-webkit-box-shadow: 0 0 0px 1000px #3c4652 inset;
|
||||
transition: background-color 1s ease-in-out 0s;
|
||||
}
|
||||
|
||||
.form-control[disabled],
|
||||
.form-control[readonly],
|
||||
fieldset[disabled] .form-control {
|
||||
background-color: #3c4652;
|
||||
opacity: 1;
|
||||
-moz-appearance: textfield;
|
||||
appearance: textfield;
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
background-color: #22282d;
|
||||
color: var(--main-text-color);
|
||||
border: 1px solid #4c5761;
|
||||
}
|
||||
|
||||
.navbar-custom-menu > .navbar-nav > li > .dropdown-menu {
|
||||
background-color: var(--primary-color-darker);
|
||||
border: 1px solid #000;
|
||||
box-shadow: 0 0 7px #000;
|
||||
}
|
||||
|
||||
.navbar-nav > .user-menu > .dropdown-menu {
|
||||
margin: 0;
|
||||
border: 1px solid var(--primary-color);
|
||||
}
|
||||
.navbar-nav > .user-menu > .dropdown-menu > .user-body {
|
||||
border-color: var(--main-text-color);
|
||||
}
|
||||
.navbar-nav > .user-menu > .dropdown-menu > .user-body a {
|
||||
color: var(--main-text-color) !important;
|
||||
}
|
||||
.navbar-nav > .user-menu > .dropdown-menu > .user-footer {
|
||||
padding: 0;
|
||||
background: #202830;
|
||||
}
|
||||
.navbar-nav > .user-menu > .dropdown-menu > .user-footer a {
|
||||
color: var(--main-text-color) !important;
|
||||
padding: 8px 12px;
|
||||
}
|
||||
.navbar-nav > .user-menu > .dropdown-menu > .user-footer a:hover {
|
||||
background-color: var(--primary-color) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.user-menu hr {
|
||||
margin: 0;
|
||||
opacity: 1;
|
||||
border-color: var(--primary-color-darker);
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
.main-header .navbar .dropdown-menu li.divider {
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
.main-header .navbar .dropdown-menu li a:hover {
|
||||
background-color: var(--menu-hover-bgcolor);
|
||||
}
|
||||
}
|
||||
|
||||
.table-striped > tbody > tr:nth-of-type(2n + 1) {
|
||||
background-color: #1d252d;
|
||||
}
|
||||
|
||||
.panel,
|
||||
.panel-body,
|
||||
.panel-default > .panel-heading {
|
||||
background-color: #3e464c;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #3c4652;
|
||||
color: var(--main-text-color);
|
||||
}
|
||||
|
||||
.box.box-solid.box-info,
|
||||
.box.box-solid.box-info > .box-header {
|
||||
color: var(--main-text-color);
|
||||
background-color: #367fa9 !important;
|
||||
border: 1px solid #367fa9;
|
||||
}
|
||||
|
||||
input[type="password"]::-webkit-caps-lock-indicator {
|
||||
filter: invert(100%);
|
||||
}
|
||||
|
||||
.network-never {
|
||||
background-color: var(--network-never);
|
||||
}
|
||||
.network-recent {
|
||||
background-color: var(--network-recent);
|
||||
}
|
||||
.network-old {
|
||||
background-color: var(--network-old);
|
||||
}
|
||||
.network-older {
|
||||
background-color: var(--network-older);
|
||||
}
|
||||
.network-gradient {
|
||||
background-image: linear-gradient(to right, var(--network-recent) 0%, var(--network-old) 100%);
|
||||
}
|
||||
|
||||
.icheckbox_polaris,
|
||||
.icheckbox_futurico,
|
||||
.icheckbox_minimal-blue {
|
||||
margin-right: 10px;
|
||||
}
|
||||
.iradio_polaris,
|
||||
.iradio_futurico,
|
||||
.iradio_minimal-blue {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
/* Overlay box with spinners as shown during data collection for graphs */
|
||||
.box .overlay,
|
||||
.overlay-wrapper .overlay {
|
||||
z-index: 50;
|
||||
background-color: rgba(53, 60, 66, 0.733);
|
||||
border-radius: 3px;
|
||||
}
|
||||
.box .overlay > .fa,
|
||||
.overlay-wrapper .overlay > .fa {
|
||||
color: var(--main-text-color) !important;
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
background: #202830;
|
||||
}
|
||||
.modal-header {
|
||||
border-bottom-color: #3c4652;
|
||||
}
|
||||
.modal-footer {
|
||||
border-top-color: #3c4652;
|
||||
}
|
||||
|
||||
.close {
|
||||
color: #383838;
|
||||
}
|
||||
|
||||
.login-page {
|
||||
background: #181c20;
|
||||
}
|
||||
|
||||
/*** Fix login input visual misalignment ***/
|
||||
.login-options input,
|
||||
.login-options [class*="icheck-"] > input:first-child + input[type="hidden"] + label::before,
|
||||
.login-options [class*="icheck-"] > input:first-child + label::before {
|
||||
background: none;
|
||||
border-color: currentColor;
|
||||
}
|
||||
|
||||
.form-group.has-error label {
|
||||
color: #f65;
|
||||
}
|
||||
|
||||
.main-header .logo {
|
||||
background-color: var(--menu-hover-bgcolor);
|
||||
color: #fff;
|
||||
border-bottom: 0 solid transparent;
|
||||
}
|
||||
.main-header .logo:hover {
|
||||
background-color: var(--menu-hover-bgcolor);
|
||||
}
|
||||
|
||||
.main-header li.user-header {
|
||||
background-color: var(--primary-color-darker);
|
||||
}
|
||||
|
||||
.content-header {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.form-control::placeholder {
|
||||
color: #9ab;
|
||||
}
|
||||
.form-control::-webkit-input-placeholder {
|
||||
color: #9ab;
|
||||
}
|
||||
.form-control:focus::placeholder,
|
||||
.form-control:focus::-webkit-input-placeholder {
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
/* Small box and alert colors */
|
||||
.bg-aqua,
|
||||
.callout.callout-info,
|
||||
.alert-info,
|
||||
.label-info,
|
||||
.modal-info .modal-body {
|
||||
background: var(--info-color) !important;
|
||||
border-color: var(--info-color) !important;
|
||||
}
|
||||
.bg-red,
|
||||
.callout.callout-danger,
|
||||
.alert-danger,
|
||||
.alert-error,
|
||||
.label-danger,
|
||||
.modal-danger .modal-body {
|
||||
background: var(--danger-color) !important;
|
||||
border-color: var(--danger-color) !important;
|
||||
}
|
||||
.bg-yellow,
|
||||
.callout.callout-warning,
|
||||
.alert-warning,
|
||||
.label-warning,
|
||||
.modal-warning .modal-body {
|
||||
background: var(--warning-color) !important;
|
||||
border-color: var(--warning-color) !important;
|
||||
}
|
||||
.bg-green,
|
||||
.callout.callout-success,
|
||||
.alert-success,
|
||||
.label-success,
|
||||
.modal-success .modal-body {
|
||||
background: var(--success-color) !important;
|
||||
border-color: var(--success-color) !important;
|
||||
}
|
||||
|
||||
.alert .close {
|
||||
color: currentColor;
|
||||
opacity: 0.5;
|
||||
filter: none;
|
||||
}
|
||||
.alert .close:hover {
|
||||
opacity: 1;
|
||||
filter: none;
|
||||
}
|
||||
|
||||
.small-box > .small-box-footer {
|
||||
color: #fff;
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
/* Tables and Datatables */
|
||||
.blocked-row td {
|
||||
background-color: rgba(56, 0, 40, 0.35);
|
||||
}
|
||||
.allowed-row td {
|
||||
background-color: rgba(0, 64, 64, 0.35);
|
||||
}
|
||||
|
||||
table.dataTable thead .sorting::after,
|
||||
table.dataTable thead .sorting_asc::after,
|
||||
table.dataTable thead .sorting_desc::after,
|
||||
table.dataTable thead .sorting_asc_disabled::after,
|
||||
table.dataTable thead .sorting_desc_disabled::after {
|
||||
opacity: 1;
|
||||
width: 20px;
|
||||
padding: 0 1px;
|
||||
border-radius: 4px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table.dataTable thead .sorting::after {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
table.dataTable thead th:hover.sorting::after,
|
||||
table.dataTable thead th:hover.sorting_asc::after,
|
||||
table.dataTable thead th:hover.sorting_desc::after,
|
||||
table.dataTable thead th:hover.sorting_asc_disabled::after,
|
||||
table.dataTable thead th:hover.sorting_desc_disabled::after {
|
||||
color: #fff;
|
||||
background: #000;
|
||||
}
|
||||
|
||||
td.highlight {
|
||||
background-color: rgba(255, 204, 0, 0.15);
|
||||
}
|
||||
|
||||
#domain-frequency .table-responsive table tr th:nth-child(3),
|
||||
#domain-frequency .table-responsive table tr td:nth-child(3),
|
||||
#ad-frequency .table-responsive table tr th:nth-child(3),
|
||||
#ad-frequency .table-responsive table tr td:nth-child(3) {
|
||||
width: 146px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.lookatme {
|
||||
color: #000 !important;
|
||||
z-index: 1;
|
||||
}
|
||||
.lookatme::after {
|
||||
background: #f94;
|
||||
text-shadow: none;
|
||||
content: "";
|
||||
inset: -2px -4px;
|
||||
z-index: -100;
|
||||
animation: none;
|
||||
border-radius: 6px;
|
||||
}
|
||||
@@ -0,0 +1,562 @@
|
||||
/* Pi-hole: A black hole for Internet advertisements
|
||||
* (c) 2020 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. */
|
||||
|
||||
:root {
|
||||
--primary-color: #0078a0;
|
||||
--primary-color-darker: #00445b;
|
||||
--darker-bgcolor: #101c20;
|
||||
|
||||
--info-color: var(--primary-color);
|
||||
--danger-color: #a83333;
|
||||
--warning-color: #a86600;
|
||||
--success-color: #027744;
|
||||
|
||||
--menu-hover-bgcolor: var(--darker-bgcolor);
|
||||
--submenu-hover-bgcolor: rgba(0, 0, 0, 0.15);
|
||||
|
||||
--network-recent: #f4fcfa;
|
||||
--network-old: #ddefff;
|
||||
--network-older: #cce6fe;
|
||||
--network-never: #ffca98;
|
||||
|
||||
--allowed-color: #3c7;
|
||||
--blocked-color: var(--danger-color);
|
||||
}
|
||||
|
||||
/* removing transition for every element, to avoid unnecessary movement */
|
||||
* {
|
||||
transition: none !important;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: 15px;
|
||||
}
|
||||
.layout-boxed {
|
||||
background: #abc;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #1e6188;
|
||||
}
|
||||
a:hover {
|
||||
color: #000;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.logo-img {
|
||||
filter: saturate(0) brightness(4.6) contrast(0.9);
|
||||
}
|
||||
|
||||
.main-header .navbar {
|
||||
background-color: var(--primary-color);
|
||||
}
|
||||
.main-header .navbar .nav > li > a,
|
||||
.main-header .navbar .nav > li > .navbar-text {
|
||||
color: #fff;
|
||||
max-height: 50px;
|
||||
}
|
||||
.main-header .navbar .nav > li > a:hover,
|
||||
.main-header .navbar .nav > li > a:active,
|
||||
.main-header .navbar .nav > li > a:focus,
|
||||
.main-header .navbar .nav .open > a,
|
||||
.main-header .navbar .nav .open > a:hover,
|
||||
.main-header .navbar .nav .open > a:focus {
|
||||
background-color: rgba(0, 0, 0, 0.1);
|
||||
color: #f6f6f6;
|
||||
}
|
||||
.main-header .navbar .nav > li > .navbar-text code {
|
||||
color: #900;
|
||||
}
|
||||
.main-header .navbar .sidebar-toggle {
|
||||
color: #fff;
|
||||
}
|
||||
.main-header .navbar .sidebar-toggle:hover {
|
||||
color: #f6f6f6;
|
||||
background-color: var(--primary-color-darker);
|
||||
}
|
||||
@media (max-width: 767px) {
|
||||
.main-header .navbar .dropdown-menu li.divider {
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
.main-header .navbar .dropdown-menu li a:hover {
|
||||
background-color: var(--primary-color-darker);
|
||||
}
|
||||
}
|
||||
.main-header .logo {
|
||||
background-color: var(--primary-color-darker);
|
||||
color: #fff;
|
||||
border-bottom: 0 solid transparent;
|
||||
}
|
||||
.main-header .logo:hover {
|
||||
background-color: var(--menu-hover-bgcolor);
|
||||
}
|
||||
.main-header li.user-header {
|
||||
background-color: var(--primary-color-darker);
|
||||
}
|
||||
.content-header {
|
||||
background-color: transparent;
|
||||
}
|
||||
.navbar-nav > .user-menu > .dropdown-menu {
|
||||
margin: 0;
|
||||
border: 2px solid var(--primary-color-darker);
|
||||
}
|
||||
.navbar-nav > .user-menu > .dropdown-menu > .user-footer {
|
||||
padding: 0;
|
||||
color: var(--primary-color-darker);
|
||||
}
|
||||
.navbar-nav > .user-menu > .dropdown-menu > .user-footer a {
|
||||
padding: 8px 12px;
|
||||
}
|
||||
.navbar-nav > .user-menu > .dropdown-menu > .user-footer a:hover {
|
||||
background-color: var(--primary-color) !important;
|
||||
color: #fff;
|
||||
}
|
||||
.user-menu hr {
|
||||
margin: 0;
|
||||
opacity: 1;
|
||||
border-color: var(--primary-color-darker);
|
||||
}
|
||||
|
||||
.wrapper,
|
||||
.main-sidebar,
|
||||
.left-side {
|
||||
background-color: #222d32;
|
||||
}
|
||||
.user-panel > .info,
|
||||
.user-panel > .info > a {
|
||||
color: #fff;
|
||||
}
|
||||
.sidebar-menu > li.header {
|
||||
color: #808a90;
|
||||
background-color: var(--menu-hover-bgcolor);
|
||||
}
|
||||
.sidebar-menu > li > a {
|
||||
border-left: 3px solid transparent;
|
||||
}
|
||||
.sidebar-menu > li:hover > a,
|
||||
.sidebar-menu > li > a:focus,
|
||||
.sidebar-menu > li.active > a {
|
||||
color: #fff;
|
||||
background-color: var(--menu-hover-bgcolor);
|
||||
border-left-color: #fff;
|
||||
}
|
||||
.sidebar-menu > li > .treeview-menu {
|
||||
margin: 0 3px;
|
||||
background-color: #2c3b41;
|
||||
}
|
||||
.sidebar a {
|
||||
color: #d2dde1;
|
||||
}
|
||||
.sidebar a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
/* "Donate" sidebar button */
|
||||
.sidebar-menu > li.menu-donate:hover > a,
|
||||
.sidebar-menu > li.menu-donate > a:focus {
|
||||
color: #fff;
|
||||
background-color: #a03333;
|
||||
}
|
||||
.treeview-menu {
|
||||
padding: 0;
|
||||
}
|
||||
.treeview-menu > li > a {
|
||||
padding: 5px 5px 5px 17px;
|
||||
}
|
||||
.treeview-menu > li.active > a,
|
||||
.treeview-menu > li > a:hover,
|
||||
.treeview-menu > li > a:focus {
|
||||
color: #fff;
|
||||
background: var(--menu-hover-bgcolor);
|
||||
}
|
||||
|
||||
.nav-tabs-custom > .nav-tabs {
|
||||
background: #e4e8f0;
|
||||
}
|
||||
.nav-tabs-custom > .nav-tabs > li {
|
||||
margin-right: 1px;
|
||||
}
|
||||
.nav-tabs-custom > .nav-tabs > li:not(.active):hover {
|
||||
background: #fff;
|
||||
border-top-color: #d2d6de;
|
||||
}
|
||||
.nav-tabs-custom > .nav-tabs > li > a,
|
||||
.nav-tabs-custom > .nav-tabs > li > a:hover {
|
||||
color: #567;
|
||||
}
|
||||
.nav-tabs-custom > .nav-tabs > li > a:focus {
|
||||
border-top-color: var(--primary-color-darker);
|
||||
}
|
||||
.nav-tabs-custom > .nav-tabs > li.active {
|
||||
border-top-color: var(--primary-color);
|
||||
}
|
||||
|
||||
.form-control {
|
||||
color: #000;
|
||||
}
|
||||
.form-control::placeholder {
|
||||
color: #6c747b;
|
||||
}
|
||||
.form-control::-webkit-input-placeholder {
|
||||
color: #6c747b;
|
||||
}
|
||||
|
||||
.login-box {
|
||||
background: #fff;
|
||||
}
|
||||
.form-group.has-error label {
|
||||
color: var(--danger-color);
|
||||
}
|
||||
|
||||
.not-used {
|
||||
background-color: #eee;
|
||||
}
|
||||
.not-used:hover {
|
||||
background-color: #c5c5c5;
|
||||
}
|
||||
.used {
|
||||
background-color: #fff;
|
||||
}
|
||||
.used:hover {
|
||||
background-color: #ddd;
|
||||
}
|
||||
|
||||
.graphs-grid {
|
||||
background-color: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
.graphs-ticks {
|
||||
color: #000;
|
||||
}
|
||||
.queries-permitted {
|
||||
background-color: var(--allowed-color);
|
||||
}
|
||||
.queries-blocked {
|
||||
background-color: var(--blocked-color);
|
||||
}
|
||||
.progress {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
/* Used in the Query Log table */
|
||||
.text-black {
|
||||
color: #000 !important;
|
||||
}
|
||||
.text-green-light {
|
||||
color: #8fa !important;
|
||||
}
|
||||
.text-green {
|
||||
color: #008000 !important;
|
||||
}
|
||||
.text-orange {
|
||||
color: #f80 !important;
|
||||
}
|
||||
.text-red {
|
||||
color: #c00 !important;
|
||||
}
|
||||
.text-vivid-blue {
|
||||
color: #39f !important;
|
||||
}
|
||||
|
||||
/* Used in debug log page */
|
||||
.log-red {
|
||||
color: #d00;
|
||||
font-weight: bold;
|
||||
}
|
||||
.log-green {
|
||||
color: #071;
|
||||
font-weight: bold;
|
||||
}
|
||||
.log-yellow {
|
||||
color: #b05000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.log-blue {
|
||||
color: #04d;
|
||||
font-weight: bold;
|
||||
}
|
||||
.log-purple {
|
||||
color: #a0c;
|
||||
font-weight: bold;
|
||||
}
|
||||
.log-cyan {
|
||||
color: #07a;
|
||||
font-weight: bold;
|
||||
}
|
||||
.log-gray {
|
||||
color: #999;
|
||||
}
|
||||
#output {
|
||||
font-size: 14px;
|
||||
}
|
||||
#output b.log-red {
|
||||
background: #c00;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.warning-count {
|
||||
color: #000;
|
||||
background: #eb4;
|
||||
}
|
||||
|
||||
.icheckbox_minimal-blue {
|
||||
margin-right: 10px;
|
||||
}
|
||||
.iradio_minimal-blue {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.datatable-bt,
|
||||
.datatable-bt:active,
|
||||
.datatable-bt:active:focus,
|
||||
.datatable-bt:focus {
|
||||
background: #fff;
|
||||
border-color: #ddd;
|
||||
color: #345;
|
||||
}
|
||||
|
||||
.datatable-bt:hover,
|
||||
.datatable-bt:active:hover {
|
||||
background: #337ab7;
|
||||
border-color: #337ab7;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/*** Overwrite chrome's input field auto-filling ***/
|
||||
input:-webkit-autofill,
|
||||
input:-webkit-autofill:focus,
|
||||
textarea:-webkit-autofill,
|
||||
select:-webkit-autofill {
|
||||
-webkit-text-fill-color: #666 !important;
|
||||
-webkit-box-shadow: 0 0 0px 1000px #fff inset;
|
||||
transition: background-color 1s ease-in-out 0s;
|
||||
}
|
||||
|
||||
.sidebar-toggle-svg:hover {
|
||||
color: #fff;
|
||||
background: var(--primary-color-darker);
|
||||
}
|
||||
|
||||
/* Small box and alert colors */
|
||||
.bg-aqua,
|
||||
.callout.callout-info,
|
||||
.alert-info,
|
||||
.label-info,
|
||||
.modal-info .modal-body {
|
||||
background: var(--info-color) !important;
|
||||
}
|
||||
.bg-red,
|
||||
.callout.callout-danger,
|
||||
.alert-danger,
|
||||
.alert-error,
|
||||
.label-danger,
|
||||
.modal-danger .modal-body {
|
||||
background: var(--danger-color) !important;
|
||||
}
|
||||
.bg-yellow,
|
||||
.callout.callout-warning,
|
||||
.alert-warning,
|
||||
.label-warning,
|
||||
.modal-warning .modal-body {
|
||||
background: var(--warning-color) !important;
|
||||
}
|
||||
.bg-green,
|
||||
.callout.callout-success,
|
||||
.alert-success,
|
||||
.label-success,
|
||||
.modal-success .modal-body {
|
||||
background: var(--success-color) !important;
|
||||
}
|
||||
|
||||
.small-box > .small-box-footer {
|
||||
color: #fff;
|
||||
}
|
||||
.small-box > .small-box-footer {
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
/* Tables and Datatables */
|
||||
.table-bordered,
|
||||
.table-bordered > thead > tr > th,
|
||||
.table-bordered > tbody > tr > th,
|
||||
.table-bordered > tfoot > tr > th,
|
||||
.table-bordered > thead > tr > td,
|
||||
.table-bordered > tbody > tr > td,
|
||||
.table-bordered > tfoot > tr > td {
|
||||
border: 1px solid #d0d0d0;
|
||||
}
|
||||
.table-striped > tbody > tr:nth-of-type(2n + 1) {
|
||||
background-color: #fcfcfc;
|
||||
}
|
||||
|
||||
.blocked-row td {
|
||||
background-color: rgba(230, 160, 160, 0.3);
|
||||
}
|
||||
.allowed-row td {
|
||||
background-color: rgba(236, 255, 246, 0.3);
|
||||
}
|
||||
|
||||
td.highlight {
|
||||
background-color: rgba(255, 204, 0, 0.333);
|
||||
}
|
||||
|
||||
table.dataTable thead .sorting:after,
|
||||
table.dataTable thead .sorting_asc:after,
|
||||
table.dataTable thead .sorting_desc:after,
|
||||
table.dataTable thead .sorting_asc_disabled:after,
|
||||
table.dataTable thead .sorting_desc_disabled:after {
|
||||
opacity: 1;
|
||||
width: 20px;
|
||||
padding: 0 1px;
|
||||
border-radius: 4px;
|
||||
text-align: center;
|
||||
}
|
||||
table.dataTable thead .sorting:after {
|
||||
opacity: 0.6;
|
||||
}
|
||||
table.dataTable thead th:hover.sorting::after,
|
||||
table.dataTable thead th:hover.sorting_asc::after,
|
||||
table.dataTable thead th:hover.sorting_desc::after,
|
||||
table.dataTable thead th:hover.sorting_asc_disabled::after,
|
||||
table.dataTable thead th:hover.sorting_desc_disabled::after {
|
||||
color: #fff;
|
||||
background: #000;
|
||||
}
|
||||
|
||||
#domain-frequency .table-responsive table tr th:nth-child(3),
|
||||
#domain-frequency .table-responsive table tr td:nth-child(3),
|
||||
#ad-frequency .table-responsive table tr th:nth-child(3),
|
||||
#ad-frequency .table-responsive table tr td:nth-child(3) {
|
||||
width: 146px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#network-entries td {
|
||||
border-color: #bbb;
|
||||
}
|
||||
.network-never {
|
||||
background-color: var(--network-never);
|
||||
}
|
||||
.network-recent {
|
||||
background-color: var(--network-recent);
|
||||
}
|
||||
.network-old {
|
||||
background-color: var(--network-old);
|
||||
}
|
||||
.network-older {
|
||||
background-color: var(--network-older);
|
||||
}
|
||||
.network-gradient {
|
||||
background-image: linear-gradient(to right, var(--network-recent) 0%, var(--network-old) 100%);
|
||||
}
|
||||
|
||||
/* Buttons and controls */
|
||||
.pagination > .active > a,
|
||||
.pagination > .active > a:focus,
|
||||
.pagination > .active > a:hover,
|
||||
.pagination > .active > span,
|
||||
.pagination > .active > span:focus,
|
||||
.pagination > .active > span:hover {
|
||||
background-color: var(--primary-color);
|
||||
border-color: var(--primary-color);
|
||||
}
|
||||
.pagination > .disabled > a,
|
||||
.pagination > .disabled > a:focus,
|
||||
.pagination > .disabled > a:hover,
|
||||
.pagination > .disabled > span,
|
||||
.pagination > .disabled > span:focus,
|
||||
.pagination > .disabled > span:hover {
|
||||
color: #747474;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background-color: var(--primary-color);
|
||||
border-color: var(--primary-color);
|
||||
color: #fff;
|
||||
}
|
||||
.btn-primary:active,
|
||||
.btn-primary:focus,
|
||||
.btn-primary.hover {
|
||||
background-color: var(--primary-color-darker);
|
||||
}
|
||||
.btn-primary:hover {
|
||||
color: var(--primary-color-darker);
|
||||
background-color: #fff;
|
||||
border-color: var(--primary-color-darker);
|
||||
}
|
||||
|
||||
.btn-info {
|
||||
background: var(--info-color);
|
||||
border-color: var(--info-color) !important;
|
||||
}
|
||||
.btn-danger {
|
||||
background: var(--danger-color);
|
||||
border-color: var(--danger-color) !important;
|
||||
}
|
||||
.btn-warning {
|
||||
background: var(--warning-color);
|
||||
border-color: var(--warning-color) !important;
|
||||
}
|
||||
.btn-success {
|
||||
background: var(--success-color);
|
||||
border-color: var(--success-color) !important;
|
||||
}
|
||||
|
||||
.btn-default:hover {
|
||||
color: #fff;
|
||||
background: #444;
|
||||
}
|
||||
.btn-info:hover {
|
||||
color: var(--info-color);
|
||||
background: #fff;
|
||||
}
|
||||
.btn-danger:hover {
|
||||
color: var(--danger-color);
|
||||
background: #fff;
|
||||
}
|
||||
.btn-warning:hover {
|
||||
color: var(--warning-color);
|
||||
background: #fff;
|
||||
}
|
||||
.btn-success:hover {
|
||||
color: var(--success-color);
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.btn-blacklist,
|
||||
.btn-whitelist {
|
||||
background-color: #fff;
|
||||
}
|
||||
.btn-audit {
|
||||
color: #90c !important;
|
||||
background-color: #fff;
|
||||
}
|
||||
.btn-blacklist:hover {
|
||||
background-color: var(--danger-color);
|
||||
color: #fff !important;
|
||||
}
|
||||
.btn-whitelist:hover {
|
||||
background-color: var(--success-color);
|
||||
color: #fff !important;
|
||||
}
|
||||
.btn-audit:hover {
|
||||
background-color: #90c;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.lookatme {
|
||||
color: #000 !important;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.lookatme::after {
|
||||
background: #eb4;
|
||||
text-shadow: none;
|
||||
content: "";
|
||||
inset: -2px -4px;
|
||||
z-index: -100;
|
||||
animation: none;
|
||||
border-radius: 6px;
|
||||
}
|
||||
+53
-3
@@ -24,6 +24,8 @@
|
||||
/*** General ***/
|
||||
html {
|
||||
font-size: 17px;
|
||||
/* fix #2554: browser not detecting dark mode */
|
||||
color-scheme: dark;
|
||||
}
|
||||
|
||||
body {
|
||||
@@ -502,9 +504,9 @@ p.login-box-msg,
|
||||
margin: 5px 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
color: #000;
|
||||
background: #9ab !important;
|
||||
border: 3px solid #fff !important;
|
||||
color: #9ab;
|
||||
background: #111111 !important;
|
||||
border: 3px solid #4488ff !important;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 0 0 2000vmax rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
@@ -1143,6 +1145,16 @@ footer a:focus {
|
||||
padding: 0 4px;
|
||||
}
|
||||
|
||||
.modal-body .overlay {
|
||||
padding: 0px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.modal-header,
|
||||
.modal-footer {
|
||||
border-color: #222;
|
||||
}
|
||||
|
||||
.box-header.with-border,
|
||||
.table-responsive,
|
||||
.table-bordered,
|
||||
@@ -1470,6 +1482,32 @@ table.dataTable {
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.modal-dialog {
|
||||
border-radius: 12px;
|
||||
border: 3px solid #4488ff;
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
border-radius: 12px;
|
||||
background-color: #111111;
|
||||
}
|
||||
|
||||
.modal-header .close,
|
||||
.close,
|
||||
.alert > .close {
|
||||
color: currentColor;
|
||||
opacity: 1;
|
||||
text-shadow: none;
|
||||
transform: scale(2) translate(0, -3px);
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.close:hover,
|
||||
.close:focus {
|
||||
color: #fff;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.alert {
|
||||
animation: flash 1.2s ease-in-out 0.5s;
|
||||
transition: all ease-in-out 1s;
|
||||
@@ -1643,6 +1681,11 @@ table.dataTable {
|
||||
.main-header .navbar .dropdown-menu li.divider {
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
.dropdown-menu > li > a:hover,
|
||||
.dropdown-menu > li > a:active,
|
||||
.dropdown-menu > li > a:focus {
|
||||
color: #48f;
|
||||
}
|
||||
.main-header .logo {
|
||||
width: 150px;
|
||||
float: left;
|
||||
@@ -2055,3 +2098,10 @@ td.highlight {
|
||||
#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 {
|
||||
background-color: #111111;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user