diff --git a/dashboard/public/translation/en.json b/dashboard/public/translation/en.json index a976f0f41..06a6ee42f 100644 --- a/dashboard/public/translation/en.json +++ b/dashboard/public/translation/en.json @@ -1677,7 +1677,8 @@ "title": "Backup Sites", "emptyPlaceholder": "No backup sites", "lastRun": "Last run", - "description": "Backup sites specify where system and app backups are stored. App backups can be restored individually." + "description": "Backup sites specify where system and app backups are stored. App backups can be restored individually.", + "noAutomaticUpdateBackupWarning": "No backup site is configured to store backups for automatic updates. Enable \"Store automatic-update backups here\" on at least one backup site to allow automatic updates." }, "site": { "removeDialog": { diff --git a/dashboard/src/views/BackupSitesView.vue b/dashboard/src/views/BackupSitesView.vue index a52a8b4c6..c58b74c98 100644 --- a/dashboard/src/views/BackupSitesView.vue +++ b/dashboard/src/views/BackupSitesView.vue @@ -4,7 +4,7 @@ import { useI18n } from 'vue-i18n'; const i18n = useI18n(); const t = i18n.t; -import { ref, onMounted, useTemplateRef, reactive, inject } from 'vue'; +import { ref, onMounted, useTemplateRef, reactive, inject, computed } from 'vue'; import { Button, ProgressBar, InputDialog } from '@cloudron/pankow'; import { prettyLongDate } from '@cloudron/pankow/utils'; import ActionBar from '../components/ActionBar.vue'; @@ -34,6 +34,7 @@ const systemBackupList = useTemplateRef('systemBackupList'); const sites = ref([]); const busy = ref(true); +const hasUpdateBackupSite = computed(() => sites.value.some(site => site.enableForUpdates)); const backupSiteAddDialog = useTemplateRef('backupSiteAddDialog'); function onAdd() { @@ -296,10 +297,10 @@ onMounted(async () => {
-
- -
{{ $t('backup.sites.emptyPlaceholder') }}
-
+ +
{{ $t('backup.sites.noAutomaticUpdateBackupWarning') }}
+
{{ $t('backup.sites.emptyPlaceholder') }}
+
@@ -359,7 +360,6 @@ onMounted(async () => {
-