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>
3.4 KiB
3.4 KiB
Суммаризация: кликабельные строки во всех реестрах (изменение 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"(внутри есть ссылки и кнопки); доступ остаётся через ссылку и меню «⋯». - У родительского префикса нельзя открыть адреса, назначенные прямо на него, — только раскрыть ветку.
- Таблицы «Обзора» (сводка) не менялись.