diff --git a/app/(main)/backups/page.tsx b/app/(main)/backups/page.tsx index 1b93354c..45ad3030 100644 --- a/app/(main)/backups/page.tsx +++ b/app/(main)/backups/page.tsx @@ -1,6 +1,7 @@ "use client" import { Suspense, useCallback, useEffect, useRef, useState } from "react" +import { Frame, FramePanel } from "@/components/reui/frame" import { PageHeader } from "@/components/page-header" import { backups as mockBackups, servers as mockServers, type Backup, type Server } from "@/lib/data" import { useBackupsUrlState } from "@/hooks/use-backups-url-state" @@ -147,7 +148,7 @@ function BackupsContent() { canReadServers ? requestJson(backendUrl, "/api/servers", { signal }).then(payload => { const rows = serverListSchema.parse(payload) if (!active()) return - setLiveServers(rows.map(toFrontendServer)); success("servers") + setLiveServers(rows.map(row => ({ ...toFrontendServer(row), status: row.status ?? "unknown" }))); success("servers") }).catch(error => failure("servers", error)) : Promise.resolve(), getBackupScheduleSettings(backendUrl, { signal }).then(row => { if (!active()) return @@ -366,7 +367,7 @@ function BackupsContent() { } return ( -
+
-
+
{urlError && Не удалось прочитать ссылку{urlError}} {!isLive &&

Демонстрационные данные. Операции и сохранение недоступны.

} {!canRead &&

Нет права mm:backups:read

} {isLive && !canReadServers &&

Каталог устройств недоступен без mm:servers:read.

} - {isLive && canRead &&
+ {isLive && canRead &&
{loading ? "Обновление данных…" : resources.backups.receivedAt ? "Получено: " + new Date(resources.backups.receivedAt).toLocaleString("ru-RU") : "Резервные копии пока неизвестны"}
} @@ -419,6 +420,7 @@ function BackupsContent() { } {opError && Операция не подтверждена{opError}} {(job.error || job.storageError) && {jobTerminal ? "Задача завершена с ограничениями" : "Результат задачи пока неизвестен"}{job.error || job.storageError}} +

Резервные копии

История файлов, расписание и подтверждения операций

+ setTab(String(v) as PageTab)} @@ -537,6 +540,7 @@ function BackupsContent() { +
diff --git a/components/backups/backups-settings.tsx b/components/backups/backups-settings.tsx index 9522a200..56689bce 100644 --- a/components/backups/backups-settings.tsx +++ b/components/backups/backups-settings.tsx @@ -152,6 +152,7 @@ export function BackupsSettings({
onScheduleChange("frequency", v)} options={[ @@ -164,7 +165,7 @@ export function BackupsSettings({ {schedule.frequency === "weekly" && ( -
+
{WEEK_DAYS.map((d, i) => (