Handle backup task start/stop states

This commit is contained in:
Johannes Zellner
2025-06-11 22:15:11 +02:00
parent 8b91b815ba
commit 2b2123f14d

View File

@@ -127,7 +127,11 @@ async function refreshBackups() {
}
const startBackupError = ref('');
const startBackupBusy = ref(false);
async function onStartBackup() {
startBackupBusy.value = true;
const [error] = await backupsModel.create();
if (error) {
if (error.status === 409) {
@@ -139,11 +143,21 @@ async function onStartBackup() {
}
await refreshTasks();
startBackupBusy.value = false;
}
const stopBackupBusy = ref(false);
async function onStopBackup() {
stopBackupBusy.value = true;
const [error] = await tasksModel.stop(lastTask.value.id);
if (error) return console.error(error);
await refreshTasks();
stopBackupBusy.value = false;
}
async function onDownloadConfig(backup) {
@@ -302,15 +316,19 @@ onMounted(async () => {
</template>
</TableView>
<br/>
<div v-if="lastTask.active">
<ProgressBar :value="lastTask.percent" />
<div>{{ lastTask.message }}</div>
<br/>
</div>
<div class="button-bar">
<Button danger @click="onStopBackup()" v-if="lastTask.active">{{ $t('backups.listing.stopTask') }}</Button>
<Button @click="onStartBackup()" v-else>{{ $t('backups.listing.backupNow') }}</Button>
<Button danger @click="onStopBackup()" v-if="lastTask.active" :loading="stopBackupBusy" :disabled="stopBackupBusy">{{ $t('backups.listing.stopTask') }}</Button>
<Button @click="onStartBackup()" v-else :loading="startBackupBusy" :disabled="startBackupBusy">{{ $t('backups.listing.backupNow') }}</Button>
<div class="error-label" v-if="startBackupError">{{ startBackupError }}</div>
</div>
<div class="text-danger" v-if="startBackupError">{{ startBackupError }}</div>
</Section>
</template>