diff --git a/dashboard/src/models/BackupTargetsModel.js b/dashboard/src/models/BackupTargetsModel.js
index 70703d7ba..e47298463 100644
--- a/dashboard/src/models/BackupTargetsModel.js
+++ b/dashboard/src/models/BackupTargetsModel.js
@@ -137,10 +137,10 @@ function create() {
if (error || result.status !== 202) return [error || result];
return [null, result.body.taskId];
},
- async mountStatus(id) {
+ async status(id) {
let error, result;
try {
- result = await fetcher.get(`${API_ORIGIN}/api/v1/backup_targets/${id}/mount_status`, { access_token: accessToken });
+ result = await fetcher.get(`${API_ORIGIN}/api/v1/backup_targets/${id}/status`, { access_token: accessToken });
} catch (e) {
error = e;
}
diff --git a/dashboard/src/views/BackupTargetsView.vue b/dashboard/src/views/BackupTargetsView.vue
index 7d15a305e..e1d9d83da 100644
--- a/dashboard/src/views/BackupTargetsView.vue
+++ b/dashboard/src/views/BackupTargetsView.vue
@@ -7,6 +7,7 @@ const t = i18n.t;
import { ref, onMounted, useTemplateRef } from 'vue';
import { Button, ButtonGroup, TableView, InputDialog } from '@cloudron/pankow';
import Section from '../components/Section.vue';
+import StateLED from '../components/StateLED.vue';
import BackupScheduleDialog from '../components/BackupScheduleDialog.vue';
import BackupTargetDialog from '../components/BackupTargetDialog.vue';
import BackupList from '../components/BackupList.vue';
@@ -28,6 +29,9 @@ const columns = {
width: '40px',
sort: true
},
+ status: {
+ width: '40px',
+ },
provider: {
label: 'Provider',
sort: true,
@@ -96,6 +100,21 @@ async function refresh() {
const [error, result] = await backupTargetsModel.list();
if (error) return console.error(error);
+ for (const target of result) {
+ target.status = { busy: true, state: '', message: '' };
+ }
+
+ for (const target of result) {
+ const [error, status] = await backupTargetsModel.status(target.id);
+ if (error) {
+ console.error(error);
+ continue;
+ }
+
+ target.status.state = status.state === 'active' ? 'success' : 'danger';
+ target.status.busy = false;
+ }
+
targets.value = result;
}
@@ -128,6 +147,12 @@ onMounted(async () => {
+
+
+
+
+
+
{{ target.provider }}