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,33 @@
## Purpose
Сохранение отметок массового выбора кандидатов между перезагрузками страницы при просмотре отдельных постов.
## ADDED Requirements
### Requirement: сохранение отметок чекбоксов при навигации по постам
Когда пользователь отмечает несколько постов чекбоксами в списке кандидатов и затем открывает один из постов (переход по ссылке ?selected=N, перезагрузка страницы), отмеченные ранее чекбоксы MUST оставаться отмеченными.
#### Scenario: открытие поста сохраняет отметки
- **WHEN** пользователь отметил несколько постов чекбоксами в списке кандидатов и открыл один из постов по ссылке ?selected=N
- **THEN** все ранее отмеченные чекбоксы остаются отмеченными после перезагрузки страницы
#### Scenario: сброс отметок после массовой операции
- **WHEN** пользователь выполнил массовую операцию (Отобрать/Отклонить) над отмеченными постами
- **THEN** отметки сбрасываются и счётчик выбранных показывает 0
### Requirement: изоляция состояния по страницам и фильтрам
Состояние чекбоксов MUST храниться отдельно для страницы кандидатов и страницы отобранных, чтобы отметки одной страницы не влияли на другую.
#### Scenario: независимость кандидаты/отобранные
- **WHEN** пользователь отметил посты на странице кандидатов и перешёл на страницу отобранных
- **THEN** на странице отобранных не восстанавливаются отметки со страницы кандидатов
### Requirement: счётчик выбранных соответствует восстановленным отметкам
Счётчик выбранных (badge sel-count) MUST отображать количество фактически отмеченных чекбоксов после восстановления состояния при загрузке страницы.
#### Scenario: счётчик после восстановления
- **WHEN** страница загружена и восстановлены сохранённые отметки чекбоксов
- **THEN** счётчик показывает количество восстановленных отметок