IPAM Manager: API, UI-админка, журнал аудита
Backend (FastAPI, SQLAlchemy 2, Alembic, PostgreSQL 16): - организации, VRF, префиксы (дерево, использование, автоназначение), адреса, операторы связи, устройства и типы устройств; JWT, роли admin/viewer; - VRF принадлежит организации (составной FK), смена VRF у префикса переносит поддерево, имя VRF уникально в организации; - журнал аудита: поиск и фильтры, ротация (срок/количество), очистка по паролю с блокировкой, IP клиента и метаданные запроса (X-Forwarded-For только от TRUSTED_PROXIES). UI (web/, без сборки): экраны и диалоги по макетам «IPAM Manager», кликабельные строки реестров, локальные шрифты IBM Plex, собственные выпадающие списки. Окружение: docker-compose (postgres + app), миграции Alembic 0001-0004, scripts/gen_env.py, scripts/seed_demo.py, 11 автотестов (pytest). Документация: README.md и docs/changes/001-005 (планы и итоги). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
commit
a846d30872
64 files changed
+4194
No files matched your search
@@ -0,0 +1,23 @@
|
||||
# Суммаризация: кликабельные строки во всех реестрах (изменение 005)
|
||||
|
||||
## Сделано
|
||||
Изменён только UI (`web/app.js`); backend и БД не менялись.
|
||||
- Строки получают `clickable` + `data-row`/`data-action`, как в журнале: «Префиксы» — лист → открыть адреса, родитель → свернуть/развернуть ветку;
|
||||
«Организации» → префиксы организации; «Операторы» / «Устройства» → окно редактирования; «Адреса» — занятый → редактирование, свободный → «Назначить адрес» с подставленным IP.
|
||||
Шеврону добавлен `aria-expanded`.
|
||||
- В едином глобальном обработчике клика действие строки не выполняется, если клик по ссылке, кнопке, полю формы или всплывающему меню, при Ctrl/Cmd/Shift/Alt,
|
||||
при выделенном тексте; если открыто меню — клик по строке только закрывает его. Вложенные `data-action` (шеврон, «⋯», пункты меню) по-прежнему приоритетнее строки.
|
||||
- Вёрстка, размеры и цвета не менялись (стили `.tr.clickable`/`.hoverable` уже существовали).
|
||||
|
||||
## Проверка
|
||||
- Сценарий в браузере по `http://192.168.5.9:8088` (15 проверок, все пройдены, ошибок JS нет): клик по строке каждого реестра; родитель сворачивается/разворачивается;
|
||||
шеврон срабатывает один раз; клик по «⋯» и пунктам меню не запускает действие строки; при открытом меню клик по строке лишь закрывает его; Shift-клик и выделение текста игнорируются;
|
||||
Ctrl+клик по ссылке открывает новую вкладку, текущая не навигирует; ссылка организации в «Операторах» работает без открытия диалога.
|
||||
- 11 автотестов backend — зелёные. Новых pytest-тестов не добавлено (изменение интерфейсное; правило проекта — минимум тестов).
|
||||
- Повторная сверка со скриншотами макетов не выполнялась: в БД, изменённой при ручном тестировании (удалены часть префиксов демо-данных), нужные для неё объекты отсутствуют;
|
||||
разметка строк изменилась только атрибутами.
|
||||
|
||||
## Ограничения
|
||||
- Клавиатура: строки не делаем `role="button"` (внутри есть ссылки и кнопки); доступ остаётся через ссылку и меню «⋯».
|
||||
- У родительского префикса нельзя открыть адреса, назначенные прямо на него, — только раскрыть ветку.
|
||||
- Таблицы «Обзора» (сводка) не менялись.
|
||||
Reference in new issue
Block a user