X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2Fcomponents%2Fservices%2FPing.vue;h=8a9b7a4e0579dbea2e04daf99fd21b733bdc9ed0;hb=1ed0a2f387ebe3f0d0aef590087e351b9534efc0;hp=a9114a826d70dcb1821604fe18dc53a209ae192e;hpb=f9cc1d27cc295498cc04b6965b88a366da7122e5;p=github%2Fbastienwirtz%2Fhomer.git diff --git a/src/components/services/Ping.vue b/src/components/services/Ping.vue index a9114a8..8a9b7a4 100644 --- a/src/components/services/Ping.vue +++ b/src/components/services/Ping.vue @@ -22,8 +22,8 @@

-
- {{ api.status }} +
+ {{ status }}
@@ -42,9 +42,7 @@ export default { item: Object, }, data: () => ({ - api: { - status: "", - }, + status: null, }), created() { this.fetchStatus(); @@ -52,9 +50,16 @@ export default { methods: { fetchStatus: async function () { const url = `${this.item.url}`; - this.api.status = await fetch(url) - .then((response) => "enabled") - .catch((e) => "disabled"); + fetch(url, { method: "HEAD", cache: "no-cache" }) + .then((response) => { + if (!response.ok) { + throw Error(response.statusText); + } + this.status = "online"; + }) + .catch(() => { + this.status = "offline"; + }); }, }, }; @@ -68,16 +73,16 @@ export default { font-size: 0.8rem; color: var(--text-title); - &.enabled:before { + &.online:before { background-color: #94e185; border-color: #78d965; - box-shadow: 0 0 4px 1px #94e185; + box-shadow: 0 0 5px 1px #94e185; } - &.disabled:before { + &.offline:before { background-color: #c9404d; border-color: #c42c3b; - box-shadow: 0 0 4px 1px #c9404d; + box-shadow: 0 0 5px 1px #c9404d; } &:before {