From 7f79fc812c6f378737d229eabf074f0da03542f3 Mon Sep 17 00:00:00 2001 From: axolotle Date: Wed, 21 Aug 2024 18:28:42 +0200 Subject: [PATCH] feat: show modal on action error when no form --- app/src/views/backup/BackupInfo.vue | 17 ++++++----------- app/src/views/domain/DomainInfo.vue | 11 ++++++++++- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/app/src/views/backup/BackupInfo.vue b/app/src/views/backup/BackupInfo.vue index a414bc45..760bb341 100644 --- a/app/src/views/backup/BackupInfo.vue +++ b/app/src/views/backup/BackupInfo.vue @@ -39,8 +39,6 @@ const { infos, system, apps } = await api const allKeys = [...Object.keys(apps), ...Object.keys(system)] const selected = ref(allKeys) -const serverError = ref('') -const isValid = ref(null) const hasBackupData = computed(() => { return !isEmptyValue(system) || !isEmptyValue(apps) @@ -65,12 +63,15 @@ async function restoreBackup() { humanKey: { key: 'backups.restore', name: props.name }, }) .then(() => { - isValid.value = null + // FIXME back to backup list or home ? }) .catch((err: APIError) => { if (!(err instanceof APIBadRequestError)) throw err - serverError.value = err.message - isValid.value = false + modalConfirm( + err.message, + { title: t('error'), bodyVariant: 'danger' }, + { cancelable: false }, + ) }) } @@ -201,12 +202,6 @@ function downloadBackup() { - - - - {{ serverError }} - -
diff --git a/app/src/views/domain/DomainInfo.vue b/app/src/views/domain/DomainInfo.vue index f6dde308..e9416355 100644 --- a/app/src/views/domain/DomainInfo.vue +++ b/app/src/views/domain/DomainInfo.vue @@ -4,6 +4,7 @@ import { useI18n } from 'vue-i18n' import { useRouter } from 'vue-router' import api, { objectToParams } from '@/api' +import { APIBadRequestError } from '@/api/errors' import ConfigPanelsComponent from '@/components/ConfigPanels.vue' import { formatConfigPanels, useConfigPanels } from '@/composables/configPanels' import { useDomains } from '@/composables/data' @@ -82,7 +83,7 @@ async function deleteDomain() { api .delete({ - uri: 'domains', + uri: `domains/${props.name}`, cachePath: `domains.${props.name}`, data, humanKey: { @@ -93,6 +94,14 @@ async function deleteDomain() { .then(() => { router.push({ name: 'domain-list' }) }) + .catch((err) => { + if (!(err instanceof APIBadRequestError)) throw err + modalConfirm( + err.data.error, + { headerVariant: 'danger', title: t('error') }, + { markdown: true, cancelable: false }, + ) + }) } async function setAsDefaultDomain() {