Групповое удаление бэкапов (docs/changes/013): - страница «Резервные копии»: чекбоксы, «выбрать все», панель «Выбрано: N / Удалить / Снять выбор» вместо фильтров, подтверждение, итог удаления; - backups.delete_many: все ключи проверяются до удаления, удаление параллельное; UI POST /backups/delete-many, API POST /api/v1/backups/delete; - выбор строк в app.js обобщён (data-select) для устройств и бэкапов. Поддержка CHR (docs/changes/014): - у CHR нет /system/routerboard (HTTP 400): устройство больше не считается недоступным, версия FW не показывается, обновление FW пропускается; - «есть обновление ROS» определяется строгим сравнением версий (на канале long-term последняя версия может быть старше установленной); - в таблице указана причина недоступности: авторизация / ошибка ответа / нет соединения. Тесты: 11 из 11. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
9 lines
1.7 KiB
Markdown
9 lines
1.7 KiB
Markdown
# План: 013 — выбор файлов и групповое удаление бэкапов
|
|
|
|
Запрос: комментарий владельца к листу «Резервные копии» в макете — «добавить селектор через checkbox и кнопку для операции группового удаления».
|
|
Решение (макет и приложение одинаково):
|
|
- Колонка чекбоксов и «выбрать все» в таблице файлов; при выборе полоса фильтров заменяется панелью «Выбрано: N · Удалить · Снять выбор» (тот же приём, что на странице устройств; логика выбора общая — `input[data-select]` в `app.js`).
|
|
- «Удалить» — с подтверждением и числом файлов; после удаления возврат на страницу с теми же фильтрами и итогом («Удалено файлов: N; не удалось: M»).
|
|
- Сервер: `backups.delete_many` — все ключи проверяются до начала удаления (чужой ключ или >500 файлов — ошибка, ничего не удаляется), удаление параллельное (8), сбой одного файла не останавливает остальные. UI: `POST /backups/delete-many`; API: `POST /api/v1/backups/delete` `{"keys": [...]}` → `{"deleted": N, "failed": M}`.
|
|
- Макет: лист «Резервные копии» обновлён, добавлен лист «выбраны файлы, групповое удаление».
|