From 4afef9abf84bf1fc2ae108aa12083f3b9e57163b Mon Sep 17 00:00:00 2001 From: shats Date: Tue, 10 Feb 2026 17:27:47 +0700 Subject: [PATCH] feat(MikrotikBackupsManager): enhance backup management UI with detailed backup table and improved server selection settings --- frontend/src/MikrotikBackupsManager.jsx | 181 ++++++++++++------------ 1 file changed, 91 insertions(+), 90 deletions(-) diff --git a/frontend/src/MikrotikBackupsManager.jsx b/frontend/src/MikrotikBackupsManager.jsx index b665f7c..a2c3715 100644 --- a/frontend/src/MikrotikBackupsManager.jsx +++ b/frontend/src/MikrotikBackupsManager.jsx @@ -518,12 +518,100 @@ function MikrotikBackupsManager() { - {/* Блок выбора серверов для автобэкапа */} -
+ {/* Таблица бэкапов для выбранного сервера */} + {loadingServers ? ( + + ) : !selectedServerId ? ( + + ) : loadingBackups ? ( + + ) : backups.length === 0 ? ( + + ) : ( +
+
+
+
Бэкапы для {currentServerLabel}
+
+ Всего: {backups.length}. Выбрано для diff: {selectedKeys.length}/2. +
+
+
+ + Восстановление выполняется вручную через Winbox/SSH, используя экспортированный .rsc +
+
+
+ + + + + + + + + + + + {backups.map((b) => { + const active = selectedKeys.includes(b.key); + const shortKey = b.key.split('/').slice(-1)[0] || b.key; + return ( + + + + + + + + ); + })} + +
СозданРазмерКлюч S3Действия
+ handleSelectKey(b.key)} + /> + {formatDateTime(b.createdAt)}{bytesToHuman(b.size)} + {shortKey} + +
+ + +
+
+
+
+ )} + + {/* Блок выбора серверов для автобэкапа – ниже как "настройки" */} +
-
Сервера для автоматических бэкапов
+
Настройки автоматических бэкапов
Отмеченные здесь Jumphost-серверы будут периодически бэкапиться планировщиком на backend.
@@ -642,93 +730,6 @@ function MikrotikBackupsManager() {
- {loadingServers ? ( - - ) : !selectedServerId ? ( - - ) : loadingBackups ? ( - - ) : backups.length === 0 ? ( - - ) : ( -
-
-
-
Бэкапы для {currentServerLabel}
-
- Всего: {backups.length}. Выбрано для diff: {selectedKeys.length}/2. -
-
-
- - Восстановление выполняется вручную через Winbox/SSH, используя экспортированный .rsc -
-
-
- - - - - - - - - - - - {backups.map((b) => { - const active = selectedKeys.includes(b.key); - const shortKey = b.key.split('/').slice(-1)[0] || b.key; - return ( - - - - - - - - ); - })} - -
СозданРазмерКлюч S3Действия
- handleSelectKey(b.key)} - /> - {formatDateTime(b.createdAt)}{bytesToHuman(b.size)} - {shortKey} - -
- - -
-
-
-
- )} - {(viewConfigKey || diffResult) && (
{viewConfigKey && (