diff --git a/packages/api-client/src/modules/archon/types.ts b/packages/api-client/src/modules/archon/types.ts index 7db11a8a6b..f4499b3610 100644 --- a/packages/api-client/src/modules/archon/types.ts +++ b/packages/api-client/src/modules/archon/types.ts @@ -1032,6 +1032,10 @@ export namespace Archon { export type BackupsQueueWithOptionsResponse = BackupsQueueResponse & { options: WorldBackupOptions next_auto_backup_at: string | null + /** How many backups occupy the manual backup pool. Manual backups can't be created once this reaches `split_manual`. */ + manual_count: number + /** How many backups occupy the automatic backup pool. The oldest ones rotate out once this exceeds `split_automatic`. */ + auto_count: number } export type PatchWorldBackupOptions = { diff --git a/packages/ui/src/layouts/wrapped/hosting/manage/backups/index.vue b/packages/ui/src/layouts/wrapped/hosting/manage/backups/index.vue index d458d4c930..d8ee76f63c 100644 --- a/packages/ui/src/layouts/wrapped/hosting/manage/backups/index.vue +++ b/packages/ui/src/layouts/wrapped/hosting/manage/backups/index.vue @@ -320,8 +320,6 @@ const messages = defineMessages({ }, }) -const LIVE_STATUSES: Backup['status'][] = ['pending', 'in_progress', 'done'] - const { formatMessage } = useVIntl() const formatRelativeTime = useRelativeTime() const { formatFrequency } = useBackupIntervalFormat() @@ -335,6 +333,7 @@ const { canManageBackups, permissionDeniedMessage } = useServerPermissions() const { query, + data, backups, deletedBackups, options, @@ -378,10 +377,8 @@ const { highlightedBackupId } = useFocusedBackup( ) const autoEnabled = computed(() => (options.value?.split_automatic ?? 0) > 0) -const autoUsed = computed(() => backups.value.filter((b) => b.rotates_at).length) -const manualUsed = computed( - () => backups.value.filter((b) => !b.automated && LIVE_STATUSES.includes(b.status)).length, -) +const autoUsed = computed(() => data.value?.auto_count ?? 0) +const manualUsed = computed(() => data.value?.manual_count ?? 0) const nextAutoBackupLabel = computed(() => { const next = nextAutoBackupAt.value