fix(evolution): сохранять черновики и подтверждать операции формы

This commit is contained in:
Denozordec committed 2026-10-03 13:59:24 +07:00
1 parent 7e3cb754b0
commit 118cd31d65
15 files changed
+162 -288

No files matched your search

+2
View File
@@ -278,3 +278,5 @@ REST запрос → ожидание → подтверждённый output /
Завершён 11Б.3.5.3.1: Evolution provider known/error/time/readers/source/strict receipts, статус Settings; 8 provider (один selector повторён), 2 прежних и 6 source E2E, lint/typecheck/production build прошли. Форма/consumer mocks ещё не приняты. Далее 11Б.3.5.3.2 — upstream catalog strict/unknown counts; затем 11Б.3.5.4 форма/consumers.
Завершён 11Б.3.5.3.2: strict upstream catalog, nullable ASN/community counts, unknown «—» вместо 0. Parser/aggregation/HTTP/JWT/build/typecheck/lint и provider/counts E2E прошли; locator inline details исправлен. Реальный Evolution/PG не принят. Далее 11Б.3.5.4.1 — форма Evolution dirty/rights/lock/key clear/source.
Завершён 11Б.3.5.4.1: отдельная форма Evolution dirty/rights/lock/clear confirmation/source; 17 основных, 8 source и 3 responsive E2E, typecheck/lint/build прошли. 6 снимков, 320/ПК/clear просмотрены. Общие Settings и live consumer mocks ещё не приняты. Далее 11Б.3.5.4.2 — consumers/sidebar unknown/disabled/no fallback.
+10 -1
View File
@@ -28,7 +28,7 @@
| 9 | VPN, Firewall и Filters | Завершён в границах локальной приёмки 2026-09-30; блоки 9.1–9.64, ограничения в 9.64 |
| 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 |
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | В работе: 11Б.1–11Б.3.5.3.2; scheduler и GeoIP приняты локально; NetFlow принят локально; далее Evolution и общие settings |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | В работе: 11Б.1–11Б.3.5.4.1; scheduler и GeoIP приняты локально; NetFlow принят локально; далее Evolution и общие settings |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Не начат |
@@ -36,6 +36,15 @@
## Блок 11Б.3.5.4.1 — форма Evolution (2026-10-03)
- Evolution вынесен из Settings в отдельную форму на существующих Frame/OpsPanel/FormField/FormToggle/AlertDialog. GET обновляет только нетронутые поля; ключ и другие dirty поля сохраняются при обновлении и ошибке. PUT отправляет только dirty fields через общий нормализующий контракт; пустой ключ не удаляет сохранённый. Успех — один inline receipt, без прежнего двойного toast и фиктивного сохранения mock-режима.
- Удаление ключа требует AlertDialog и отдельного apiKey:null patch, сохраняет URL/toggle/введённую замену. Malformed/HTTP error удерживает подтверждение и черновики. Test не сохраняет, refresh использует сохранённые настройки; единый синхронный lock с provider отключает поля/другие действия. Права/known settings/live/backend проверяются до действий.
- Форма перемонтируется по sourceKey, active guard исключает старые локальные результаты; provider продолжает отменять readers/guards mutation. Навигация Settings адаптирована (одна колонка/перенос на телефоне). Другие секции Settings ещё не приняты и сохраняют старые демонстрационные действия.
- 17 основных Evolution E2E (7 новых формы, 8 provider, 2 прежних), 8 source E2E GET/catalog/save/test success/error, 3 responsive 1440/390/320 прошли. Typecheck, профильный ESLint и production frontend/contracts build прошли. Синтаксическая опечатка обработчика поля исправлена до проверок. В Settings осталась одна исходная lint ошибка sync backendUrl effect; её исправление входит в общие Settings.
- 6 снимков docs/ux-ui/screens/evolution*.png; просмотрены 320/desktop/clear 320. Снимки пересняты с animations disabled, чтобы не фиксировать начальную прозрачность открытия popup. Реальный Evolution/PG не проверен. Source test clear не добавлялся: modal во время операции блокирует пользовательскую смену секции; не обходить inert для имитации сценария.
- Далее 11Б.3.5.4.2 — live catalog consumers/sidebar: убрать fallback mocks, явно показать unknown/disabled/no access и последние данные; затем локальная приёмка интеграции.
## Блок 11Б.3.5.3.2 — достоверность каталога Evolution (2026-10-03)
- Backend проверяет все пять upstream collections/items, обязательные поля, уникальность идентификаторов, диапазон ASN и целые безопасные counts до mapping. Malformed больше не превращается в подтверждённый пустой каталог; корректные пустые массивы допустимы. Неизвестный prefix_count (нет поля/null) сохраняется как null; итог community с таким ASN тоже unknown, известный ноль остаётся 0. Переполнение суммы отклоняется.
+6
View File
@@ -206,3 +206,9 @@ ReUI PRO/base-nova; существующие Frame, Data Grid v9, KpiStatGrid, S
Завершён 11Б.3.5.3.1: Evolution provider known/error/time/readers/source/strict receipts, статус Settings; 8 provider (один selector повторён), 2 прежних и 6 source E2E, lint/typecheck/production build прошли. Форма/consumer mocks ещё не приняты. Далее 11Б.3.5.3.2 — upstream catalog strict/unknown counts; затем 11Б.3.5.4 форма/consumers.
Завершён 11Б.3.5.3.2: strict upstream catalog, nullable ASN/community counts, unknown «—» вместо 0. Parser/aggregation/HTTP/JWT/build/typecheck/lint и provider/counts E2E прошли; locator inline details исправлен. Реальный Evolution/PG не принят. Далее 11Б.3.5.4.1 — форма Evolution dirty/rights/lock/key clear/source.
Завершён 11Б.3.5.4.1: отдельная форма Evolution dirty/rights/lock/clear confirmation/source; 17 основных, 8 source и 3 responsive E2E, typecheck/lint/build прошли. 6 снимков, 320/ПК/clear просмотрены. Общие Settings и live consumer mocks ещё не приняты. Далее 11Б.3.5.4.2 — consumers/sidebar unknown/disabled/no fallback.
| Блок | Референс | Реализованная схема |
| --- | --- | --- |
| 11Б.3.5.4.1 Evolution | [Settings 16](https://reui.io/preview/base/settings-16?ref=mcp) | Статус и свежесть → поля → сохранить / проверить → подтверждённый результат; удаление ключа → подтверждение → результат |
Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB