From 9c90387ba1b7a851dcc6444bdb569f8b4e8972fa Mon Sep 17 00:00:00 2001
From: Bastien Wirtz
Date: Sun, 25 Jan 2026 17:05:53 +0100
Subject: [PATCH] migrate all service to glabal updater
---
src/components/services/Gatus.vue | 8 ++++----
src/components/services/Gotify.vue | 11 +++++++++--
src/components/services/Healthchecks.vue | 4 ++++
src/components/services/Jellystat.vue | 4 ++++
src/components/services/Linkding.vue | 4 ++++
src/components/services/Medusa.vue | 4 ++++
src/components/services/Miniflux.vue | 8 ++++----
src/components/services/Mylar.vue | 4 ++++
src/components/services/OctoPrint.vue | 12 ++++++++++--
src/components/services/PeaNUT.vue | 4 ++++
src/components/services/Portainer.vue | 4 ++++
src/components/services/Prometheus.vue | 4 ++++
src/components/services/Proxmox.vue | 5 +++++
src/components/services/Readarr.vue | 4 ++++
src/components/services/Transmission.vue | 3 ++-
src/components/services/UptimeKuma.vue | 5 +++++
src/components/services/WUD.vue | 4 ++++
17 files changed, 79 insertions(+), 13 deletions(-)
diff --git a/src/components/services/Gatus.vue b/src/components/services/Gatus.vue
index e30933f..8954a10 100644
--- a/src/components/services/Gatus.vue
+++ b/src/components/services/Gatus.vue
@@ -40,10 +40,10 @@ export default {
statusMessage: false,
}),
created() {
- const updateInterval = parseInt(this.item.updateInterval, 10) || 0;
- if (updateInterval > 0) {
- setInterval(() => this.fetchStatus(), updateInterval);
- }
+ // Set up auto-update method for the scheduler
+ this.autoUpdateMethod = this.fetchStatus;
+
+ // Initial data fetch
this.fetchStatus();
},
methods: {
diff --git a/src/components/services/Gotify.vue b/src/components/services/Gotify.vue
index 46d9292..372e214 100644
--- a/src/components/services/Gotify.vue
+++ b/src/components/services/Gotify.vue
@@ -44,10 +44,17 @@ export default {
},
},
created() {
- this.fetchStatus();
- this.fetchMessages();
+ // Set up auto-update method for the scheduler
+ this.autoUpdateMethod = this.fetchAll;
+
+ // Initial data fetch
+ this.fetchAll();
},
methods: {
+ fetchAll: async function () {
+ this.fetchStatus();
+ this.fetchMessages();
+ },
fetchStatus: async function () {
await this.fetch(`/health`)
.catch((e) => console.log(e))
diff --git a/src/components/services/Healthchecks.vue b/src/components/services/Healthchecks.vue
index 8827a4e..1cfaec8 100644
--- a/src/components/services/Healthchecks.vue
+++ b/src/components/services/Healthchecks.vue
@@ -55,6 +55,10 @@ export default {
},
},
created() {
+ // Set up auto-update method for the scheduler
+ this.autoUpdateMethod = this.fetchStatus;
+
+ // Initial data fetch
this.fetchStatus();
},
methods: {
diff --git a/src/components/services/Jellystat.vue b/src/components/services/Jellystat.vue
index adcd43d..2026364 100644
--- a/src/components/services/Jellystat.vue
+++ b/src/components/services/Jellystat.vue
@@ -44,6 +44,10 @@ export default {
},
},
created() {
+ // Set up auto-update method for the scheduler
+ this.autoUpdateMethod = this.fetchStatus;
+
+ // Initial data fetch
this.fetchStatus();
},
methods: {
diff --git a/src/components/services/Linkding.vue b/src/components/services/Linkding.vue
index 0a9071d..f5536be 100644
--- a/src/components/services/Linkding.vue
+++ b/src/components/services/Linkding.vue
@@ -26,6 +26,10 @@ export default {
},
},
created() {
+ // Set up auto-update method for the scheduler
+ this.autoUpdateMethod = this.fetchBookmarks;
+
+ // Initial data fetch
this.fetchBookmarks();
},
methods: {
diff --git a/src/components/services/Medusa.vue b/src/components/services/Medusa.vue
index 4067eb9..4bc1559 100644
--- a/src/components/services/Medusa.vue
+++ b/src/components/services/Medusa.vue
@@ -47,6 +47,10 @@ export default {
};
},
created: function () {
+ // Set up auto-update method for the scheduler
+ this.autoUpdateMethod = this.fetchConfig;
+
+ // Initial data fetch
this.fetchConfig();
},
methods: {
diff --git a/src/components/services/Miniflux.vue b/src/components/services/Miniflux.vue
index 0ae3bb7..84ce05e 100644
--- a/src/components/services/Miniflux.vue
+++ b/src/components/services/Miniflux.vue
@@ -63,10 +63,10 @@ export default {
},
},
created() {
- const checkInterval = parseInt(this.item.checkInterval, 10) || 0;
- if (checkInterval > 0) {
- setInterval(() => this.fetchConfig(), checkInterval);
- }
+ // Set up auto-update method for the scheduler
+ this.autoUpdateMethod = this.fetchStatus;
+
+ // Initial data fetch
this.fetchStatus();
},
methods: {
diff --git a/src/components/services/Mylar.vue b/src/components/services/Mylar.vue
index 8250417..eed54d3 100644
--- a/src/components/services/Mylar.vue
+++ b/src/components/services/Mylar.vue
@@ -39,6 +39,10 @@ export default {
};
},
created: function () {
+ // Set up auto-update method for the scheduler
+ this.autoUpdateMethod = this.fetchConfig;
+
+ // Initial data fetch
this.fetchConfig();
},
methods: {
diff --git a/src/components/services/OctoPrint.vue b/src/components/services/OctoPrint.vue
index 626288a..a04214f 100644
--- a/src/components/services/OctoPrint.vue
+++ b/src/components/services/OctoPrint.vue
@@ -82,10 +82,18 @@ export default {
},
created() {
this.display = this.item.display == "bar" ? this.item.display : "text";
- this.fetchPrinterStatus();
- this.fetchStatus();
+
+ // Set up auto-update method for the scheduler
+ this.autoUpdateMethod = this.fetchAll;
+
+ // Initial data fetch
+ this.fetchAll();
},
methods: {
+ fetchAll: async function () {
+ this.fetchPrinterStatus();
+ this.fetchStatus();
+ },
fetchStatus: async function () {
try {
const response = await this.fetch(`api/job?apikey=${this.item.apikey}`);
diff --git a/src/components/services/PeaNUT.vue b/src/components/services/PeaNUT.vue
index 806dbac..0e525f8 100644
--- a/src/components/services/PeaNUT.vue
+++ b/src/components/services/PeaNUT.vue
@@ -63,6 +63,10 @@ export default {
},
},
created() {
+ // Set up auto-update method for the scheduler
+ this.autoUpdateMethod = this.fetchStatus;
+
+ // Initial data fetch
this.fetchStatus();
},
methods: {
diff --git a/src/components/services/Portainer.vue b/src/components/services/Portainer.vue
index 8edd029..1b24474 100644
--- a/src/components/services/Portainer.vue
+++ b/src/components/services/Portainer.vue
@@ -82,6 +82,10 @@ export default {
},
},
created() {
+ // Set up auto-update method for the scheduler
+ this.autoUpdateMethod = this.fetchStatus;
+
+ // Initial data fetch
this.fetchStatus();
this.fetchVersion();
},
diff --git a/src/components/services/Prometheus.vue b/src/components/services/Prometheus.vue
index fa019dd..59cd331 100644
--- a/src/components/services/Prometheus.vue
+++ b/src/components/services/Prometheus.vue
@@ -59,6 +59,10 @@ export default {
},
},
created() {
+ // Set up auto-update method for the scheduler
+ this.autoUpdateMethod = this.fetchStatus;
+
+ // Initial data fetch
this.fetchStatus();
},
methods: {
diff --git a/src/components/services/Proxmox.vue b/src/components/services/Proxmox.vue
index 975b045..e930ce7 100644
--- a/src/components/services/Proxmox.vue
+++ b/src/components/services/Proxmox.vue
@@ -101,6 +101,11 @@ export default {
}),
created() {
if (this.item.hide) this.hide = this.item.hide;
+
+ // Set up auto-update method for the scheduler
+ this.autoUpdateMethod = this.fetchStatus;
+
+ // Initial data fetch
this.fetchStatus();
},
methods: {
diff --git a/src/components/services/Readarr.vue b/src/components/services/Readarr.vue
index 52d38d4..0a02f42 100644
--- a/src/components/services/Readarr.vue
+++ b/src/components/services/Readarr.vue
@@ -46,6 +46,10 @@ export default {
};
},
created: function () {
+ // Set up auto-update method for the scheduler
+ this.autoUpdateMethod = this.fetchConfig;
+
+ // Initial data fetch
this.fetchConfig();
},
methods: {
diff --git a/src/components/services/Transmission.vue b/src/components/services/Transmission.vue
index f6ce4dd..f6e1c75 100644
--- a/src/components/services/Transmission.vue
+++ b/src/components/services/Transmission.vue
@@ -18,7 +18,8 @@
- {{ count || 0 }}
+ {{ count || 0 }}
torrent
torrents
diff --git a/src/components/services/UptimeKuma.vue b/src/components/services/UptimeKuma.vue
index 0440a73..a085437 100644
--- a/src/components/services/UptimeKuma.vue
+++ b/src/components/services/UptimeKuma.vue
@@ -110,6 +110,11 @@ export default {
created() {
/* eslint-disable */
this.item.url = `${this.item.url}/status/${this.dashboard}`;
+
+ // Set up auto-update method for the scheduler
+ this.autoUpdateMethod = this.fetchStatus;
+
+ // Initial data fetch
this.fetchStatus();
},
methods: {
diff --git a/src/components/services/WUD.vue b/src/components/services/WUD.vue
index 4cf010b..c85467d 100644
--- a/src/components/services/WUD.vue
+++ b/src/components/services/WUD.vue
@@ -37,6 +37,10 @@ export default {
};
},
created: function () {
+ // Set up auto-update method for the scheduler
+ this.autoUpdateMethod = this.fetchConfig;
+
+ // Initial data fetch
this.fetchConfig();
},
methods: {