diff --git a/apps/desktop/src/components/backup/DatabaseBackupConfigFields.vue b/apps/desktop/src/components/backup/DatabaseBackupConfigFields.vue index 60b1d6531b..5750c0b2a2 100644 --- a/apps/desktop/src/components/backup/DatabaseBackupConfigFields.vue +++ b/apps/desktop/src/components/backup/DatabaseBackupConfigFields.vue @@ -19,8 +19,9 @@ const props = withDefaults( databaseOptions: string[]; tablePatternsInput: string; loadingDatabases: boolean; + databaseLoadError?: string; }>(), - { connections: () => [], selectedDatabases: () => [], databaseOptions: () => [] }, + { connections: () => [], selectedDatabases: () => [], databaseOptions: () => [], databaseLoadError: "" }, ); const emit = defineEmits<{ @@ -139,6 +140,7 @@ watch(
{{ databaseLoadError }}
diff --git a/apps/desktop/src/components/backup/ScheduledDatabaseBackupSettings.vue b/apps/desktop/src/components/backup/ScheduledDatabaseBackupSettings.vue index 36de5814ae..38281a5047 100644 --- a/apps/desktop/src/components/backup/ScheduledDatabaseBackupSettings.vue +++ b/apps/desktop/src/components/backup/ScheduledDatabaseBackupSettings.vue @@ -16,14 +16,25 @@ import DatabaseBackupConfigFields from "@/components/backup/DatabaseBackupConfig import { useToast } from "@/composables/useToast"; import { translateBackendError } from "@/i18n/backend-errors"; import { generateDatabaseExportId } from "@/lib/export/databaseExport"; -import { nextDatabaseBackupRunAt, normalizeDatabaseBackupTablePatterns, supportsScheduledDatabaseBackup, type DatabaseBackupExecutionConfig, type DatabaseBackupFile, type DatabaseBackupRun, type DatabaseBackupSchedule } from "@/lib/backup/scheduledDatabaseBackup"; +import { + DEFAULT_DATABASE_BACKUP_RUN_DIRECTORY_PATTERN, + databaseBackupRunDirectory, + databaseBackupRunDirectoryPatternIsValid, + nextDatabaseBackupRunAt, + normalizeDatabaseBackupTablePatterns, + supportsScheduledDatabaseBackup, + type DatabaseBackupExecutionConfig, + type DatabaseBackupFile, + type DatabaseBackupRun, + type DatabaseBackupSchedule, +} from "@/lib/backup/scheduledDatabaseBackup"; import { useConnectionStore } from "@/stores/connectionStore"; import { fetchNamespaceOptionsForConnection } from "@/composables/useDatabaseOptions"; const { t, locale } = useI18n(); const { toast } = useToast(); const connectionStore = useConnectionStore(); -const { schedules, runs, activeScheduleIds, activeRunIds, cancellingRunIds, activeRuns, saveSchedule, setScheduleEnabled, deleteSchedule, deleteRun, renameRun, runSchedule, runOneShot, cancelRun } = useScheduledDatabaseBackups(); +const { schedules, runs, activeScheduleIds, activeRunIds, cancellingRunIds, activeRuns, saveSchedule, setScheduleEnabled, deleteSchedule, deleteRuns, renameRun, runSchedule, runOneShot, cancelRun } = useScheduledDatabaseBackups(); const scheduleDialogOpen = ref(false); const oneShotDialogOpen = ref(false); @@ -32,10 +43,11 @@ const deleteRunDialogOpen = ref(false); const renameRunDialogOpen = ref(false); const editingScheduleId = ref(""); const pendingDeleteSchedule = ref