diff --git a/dashboard/src/components/PlatformBackupList.vue b/dashboard/src/components/PlatformBackupList.vue
new file mode 100644
index 000000000..89718b17d
--- /dev/null
+++ b/dashboard/src/components/PlatformBackupList.vue
@@ -0,0 +1,356 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ prettyLongDate(backup.creationTime) }} ({{ backup.label }})
+
+
+ {{ $t('backups.listing.appCount', { appCount: backup.contents.length }) }}
+ {{ $t('backups.listing.noApps') }}
+
+
+ {{ backup.site.name }}
+
+
+
+
+
+
+
+
+
diff --git a/dashboard/src/views/BackupSitesView.vue b/dashboard/src/views/BackupSitesView.vue
index d8cf4ec36..5daa29c3c 100644
--- a/dashboard/src/views/BackupSitesView.vue
+++ b/dashboard/src/views/BackupSitesView.vue
@@ -12,6 +12,7 @@ import StateLED from '../components/StateLED.vue';
import BackupScheduleDialog from '../components/BackupScheduleDialog.vue';
import BackupSiteAddDialog from '../components/BackupSiteAddDialog.vue';
import BackupSiteEditDialog from '../components/BackupSiteEditDialog.vue';
+import PlatformBackupList from '../components/PlatformBackupList.vue';
import { TASK_TYPES } from '../constants.js';
import BackupSitesModel from '../models/BackupSitesModel.js';
import ProfileModel from '../models/ProfileModel.js';
@@ -283,9 +284,9 @@ onMounted(async () => {
{{ $t('backups.schedule.retentionPolicy') }}: {{ prettyBackupRetention(site.retention) }}
-
Last backup: Never
-
Last backup: {{ prettyLongDate(site.task.ts) }}
-
+
Last run: Never
+
Last run: {{ prettyLongDate(site.task.ts) }}
+
{{ site.task.percent }}% {{ site.task.message }}
@@ -298,6 +299,8 @@ onMounted(async () => {
+
+