From 3832025b0c404498c798148f1e7c52f34dce372a Mon Sep 17 00:00:00 2001 From: Andreas Waschinski <25221082+waschinski@users.noreply.github.com> Date: Sat, 10 Jul 2021 02:02:57 +0200 Subject: Improving Adguard Home service Showing "x.x% blocked" similar to how the PiHole service is doing it. The status text will no longer be `true/false` but `enabled/disabled`. Endpoints require to be logged in so fetch does now send cookies to prevent 403s. --- src/components/services/AdGuardHome.vue | 40 +++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/components/services/AdGuardHome.vue b/src/components/services/AdGuardHome.vue index 6ef5302..0c689b9 100644 --- a/src/components/services/AdGuardHome.vue +++ b/src/components/services/AdGuardHome.vue @@ -16,14 +16,21 @@

{{ item.name }}

-

{{ item.subtitle }}

+

+ + +

- {{ status.protection_enabled }} + {{ status.protection_enabled ? 'enabled' : 'disabled' }}
@@ -44,16 +51,41 @@ export default { data: () => { return { status: null, + stats: null, }; }, + computed: { + percentage: function () { + if (this.stats) { + return (this.stats.num_blocked_filtering * 100 / this.stats.num_dns_queries).toFixed(2); + } + return ""; + }, + }, created: function () { this.fetchStatus(); + if (!this.item.subtitle) { + this.fetchStats(); + } }, methods: { fetchStatus: async function () { this.status = await fetch( - `${this.item.url}/control/status` - ).then((response) => response.json()); + `${this.item.url}/control/status`, + { + credentials: 'include' + } + ).then((response) => response.json()) + .catch((e) => console.log(e)); + }, + fetchStats: async function () { + this.stats = await fetch( + `${this.item.url}/control/stats`, + { + credentials: 'include' + } + ).then((response) => response.json()) + .catch((e) => console.log(e)); }, }, }; -- cgit v1.2.3 From bebb6953cb1e5b61be000b3f2d76a27256bff3d9 Mon Sep 17 00:00:00 2001 From: Andreas Waschinski <25221082+waschinski@users.noreply.github.com> Date: Sat, 10 Jul 2021 09:58:17 +0200 Subject: Adding status "unknown" Changing code as per linter --- src/components/services/AdGuardHome.vue | 48 ++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 21 deletions(-) (limited to 'src') diff --git a/src/components/services/AdGuardHome.vue b/src/components/services/AdGuardHome.vue index 0c689b9..9aeaf39 100644 --- a/src/components/services/AdGuardHome.vue +++ b/src/components/services/AdGuardHome.vue @@ -25,12 +25,8 @@

-
- {{ status.protection_enabled ? 'enabled' : 'disabled' }} +
+ {{ protection }}
@@ -57,10 +53,18 @@ export default { computed: { percentage: function () { if (this.stats) { - return (this.stats.num_blocked_filtering * 100 / this.stats.num_dns_queries).toFixed(2); + return ( + (this.stats.num_blocked_filtering * 100) / + this.stats.num_dns_queries + ).toFixed(2); } return ""; }, + protection: function () { + if (this.status) { + return this.status.protection_enabled ? "enabled" : "disabled"; + } else return "unknown"; + }, }, created: function () { this.fetchStatus(); @@ -70,22 +74,18 @@ export default { }, methods: { fetchStatus: async function () { - this.status = await fetch( - `${this.item.url}/control/status`, - { - credentials: 'include' - } - ).then((response) => response.json()) - .catch((e) => console.log(e)); + this.status = await fetch(`${this.item.url}/control/status`, { + credentials: "include", + }) + .then((response) => response.json()) + .catch((e) => console.log(e)); }, fetchStats: async function () { - this.stats = await fetch( - `${this.item.url}/control/stats`, - { - credentials: 'include' - } - ).then((response) => response.json()) - .catch((e) => console.log(e)); + this.stats = await fetch(`${this.item.url}/control/stats`, { + credentials: "include", + }) + .then((response) => response.json()) + .catch((e) => console.log(e)); }, }, }; @@ -111,6 +111,12 @@ export default { box-shadow: 0px 0px 4px 1px #c9404d; } + &.unknown:before { + background-color: #c9c740; + border-color: #ccc935; + box-shadow: 0px 0px 4px 1px #c9c740; + } + &:before { content: " "; display: inline-block; -- cgit v1.2.3 From b63add2f9573ba62db76972274fbb30ef4577610 Mon Sep 17 00:00:00 2001 From: Andreas Waschinski <25221082+waschinski@users.noreply.github.com> Date: Tue, 14 Sep 2021 22:44:42 +0200 Subject: Status visibility no longer depending on subtitle --- src/components/services/AdGuardHome.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/components/services/AdGuardHome.vue b/src/components/services/AdGuardHome.vue index 9aeaf39..61d4bed 100644 --- a/src/components/services/AdGuardHome.vue +++ b/src/components/services/AdGuardHome.vue @@ -25,7 +25,7 @@

-
+
{{ protection }}
-- cgit v1.2.3