v0.5.12: доделки перед сдачей заказчику
§4.7: агрегация CIDR в публичном /export (aggregateCIDRs) §5: клиентская JS-валидация (запрещённые диапазоны + нормализация) §4.1: фильтр «показать удалённые» для admin (API + UI) §5: уведомление о нормализации (уже работало, проверено) Файлы: - server.js: +aggregateCIDRs в /export - views/index.ejs: JS-валидация + чек-бокс удалённых - src/api/routes/entries.js: ?includeDeleted=true (admin only) - ui/routes/entries.js: проброс includeDeleted - docs/PLAN-predsdachey.md: план доделок
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# План доделок перед сдачей заказчику
|
||||
|
||||
> 2026-06-02
|
||||
|
||||
## 1. §4.7 — Агрегация CIDR в публичном /export
|
||||
|
||||
**Проблема:** публичный `/export` отдаёт сырой список, без агрегации.
|
||||
ТЗ: «подсети суммаризируются (агрегируются в минимальный набор CIDR)».
|
||||
|
||||
**Решение:** добавить `aggregateCIDRs()` в обработчик `server.js`.
|
||||
|
||||
**Файлы:** `server.js` — одна строка.
|
||||
|
||||
---
|
||||
|
||||
## 2. §4.1 — Фильтр «показать удалённые» для admin
|
||||
|
||||
**Проблема:** админ не может посмотреть soft-deleted записи.
|
||||
|
||||
**Решение:**
|
||||
- API: поддержать `?includeDeleted=true` в `GET /api/v1/entries`
|
||||
- UI: добавить чек-бокс «показать удалённые» на странице admin
|
||||
|
||||
**Файлы:** `src/api/routes/entries.js`, `views/index.ejs`.
|
||||
|
||||
---
|
||||
|
||||
## 3. §5 — Клиентская JS-валидация
|
||||
|
||||
**Проблема:** только HTML5 `pattern`, нет проверки приватных диапазонов и нормализации на клиенте.
|
||||
|
||||
**Решение:** добавить JS-функцию `validateClientIP()` в EJS-шаблон:
|
||||
- Проверка приватных/запрещённых диапазонов (показывать ошибку сразу)
|
||||
- Предпросмотр нормализации («будет сохранено как X.X.X.0/24»)
|
||||
|
||||
**Файлы:** `views/index.ejs`.
|
||||
|
||||
---
|
||||
|
||||
## 4. §5 — Уведомление о нормализации в UI
|
||||
|
||||
**Проблема:** API возвращает `wasNormalized`, но UI может не показывать.
|
||||
|
||||
**Решение:** проверить `ui/routes/entries.js` — передаёт ли `wasNormalized` в шаблон.
|
||||
Если нет — добавить. В шаблоне показать жёлтый alert.
|
||||
|
||||
**Файлы:** `ui/routes/entries.js`, `views/index.ejs`.
|
||||
|
||||
---
|
||||
|
||||
## Порядок:
|
||||
1. §4.7 — самая простая, одна строка
|
||||
2. §5 — уведомление о нормализации
|
||||
3. §5 — клиентская валидация
|
||||
4. §4.1 — фильтр удалённых (самая объёмная)
|
||||
5. Везде: тесты, VERSION++, коммит
|
||||
Reference in New Issue
Block a user