fix(web): keep bulk checkbox selection across post navigation (openspec change keep-bulk-checkboxes)

- Save/restore checked candidate ids in sessionStorage (vesti_bulk_candidates / vesti_bulk_selected)
- Restore checks after page reload when opening a post via ?selected=N
- Fix selector: checkboxes live outside <form> (form=bulk-form attribute), query input[name=ids] globally
- Openspec: new capability candidates-bulk-selection, change archived
This commit is contained in:
kpa39l
2026-09-17 00:52:51 +00:00
parent 8777a0c4a4
commit c8fe5f7c85
8 changed files with 208 additions and 6 deletions
@@ -0,0 +1,14 @@
## 1. candidates.html — сохранение чекбоксов
- [x] 1.1 В script-блок candidates.html добавить: чтение сохранённого Set ids из sessionStorage (`vesti_bulk_candidates`), простановку checked восстановленным чекбоксам; verify: после открытия поста ?selected=N ранее отмеченные чекбоксы остаются отмеченными
- [x] 1.2 В script-блок candidates.html перехватить change чекбоксов (запись/удаление id в sessionStorage) и submit bulk-form (очистка sessionStorage); verify: отметка/снятие чекбокса обновляет sessionStorage, после отправки bulk-формы sessionStorage пуст
## 2. selected.html — сохранение чекбоксов
- [x] 2.1 В script-блок selected.html добавить восстановление чекбоксов из sessionStorage (`vesti_bulk_selected`) по аналогии с candidates.html; verify: отметки сохраняются при навигации по /selected
- [x] 2.2 В script-блок selected.html перехватить change чекбоксов и submit bulk-form (очистка); verify: после «Обработать моделью»/«Опубликовать» отметки сбрасываются
## 3. Проверка счётчика и интеграции
- [x] 3.1 Проверить, что badge sel-count показывает количество восстановленных отметок после перезагрузки; verify: открыть /candidates, отметить 2-3 поста, открыть пост, счётчик показывает прежнее число
- [x] 3.2 Проверить изоляцию /candidates и /selected (отметки одной страницы не восстанавливаются на другой); verify: отметить на /candidates, перейти на /selected — там пусто