X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2Fcomponents%2Fservices%2FPing.vue;h=8a9b7a4e0579dbea2e04daf99fd21b733bdc9ed0;hb=a74fa3830232f761bb66c7509e088f7468d5b619;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 {