diff --git a/openspec/changes/document-switcher-history/.openspec.yaml b/openspec/changes/document-switcher-history/.openspec.yaml new file mode 100644 index 0000000..f56fe13 --- /dev/null +++ b/openspec/changes/document-switcher-history/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-10-23 diff --git a/openspec/changes/document-switcher-history/proposal.md b/openspec/changes/document-switcher-history/proposal.md new file mode 100644 index 0000000..955ac8e --- /dev/null +++ b/openspec/changes/document-switcher-history/proposal.md @@ -0,0 +1,35 @@ +## Why + +AURORA-1692: на экране документа аналитик перебирает документы организации через выпадающий список «Документ» в шапке, +каждый выбор добавляет запись в историю браузера, и «Назад» ведёт к предыдущему выбранному документу, а не к экрану +консолидации, откуда документ открыли. В ветке `AURORA-1692` (PR RSHB/arm-core#171, автор — Степанов) выбор документа +открывается заменой текущей записи истории. Переключателя нет в спеке `document-review-ui`; спеку ведёт ревьюер +коммитом в ветку автора (правило владельца). + +## What Changes + +Репозиторий — только arm-core (`web/`), эндпоинты без изменений. + +- Выбор в списке «Документ» шапки экрана документа открывает `/documents/:document_id` выбранного документа с заменой + текущей записи истории (`navigate(…, { replace: true })`), без новой записи. +- Дельта `document-review-ui`: ADDED требование «Переключатель документа» — состав списка (как в коде main) и поведение + истории. + +## Non-goals + +- Переход «Открыть подтверждённую форму» с дубля формы (`StatementReview`) и открытие документа из списка файлов + (`FilesList`) — остаются обычными переходами с новой записью истории. +- Изменения бэкенда и DBML. + +## Capabilities + +### New Capabilities + +### Modified Capabilities + +- `document-review-ui`: ADDED требование «Переключатель документа». + +## Impact + +- `web/src/layouts/DocumentPage.tsx` — одна строка, `onChange` списка «Документ». +- Тестов экрана `DocumentPage` нет; поведение проверяется вручную по сценариям спеки. diff --git a/openspec/changes/document-switcher-history/specs/document-review-ui/spec.md b/openspec/changes/document-switcher-history/specs/document-review-ui/spec.md new file mode 100644 index 0000000..95a671c --- /dev/null +++ b/openspec/changes/document-switcher-history/specs/document-review-ui/spec.md @@ -0,0 +1,18 @@ +## ADDED Requirements + +### Requirement: Переключатель документа +В шапке экрана документа SHALL быть выпадающий список «Документ» с документами файлов того же ЮЛ в той же консолидации, +что и файл открытого документа (файл вне консолидации — все файлы ЮЛ): у пункта имя файла, вторая строка (тип · формат · +дата) и статус; пункты, которые нельзя открыть, неактивны. Выбор пункта SHALL открывать `/documents/:document_id` +выбранного документа заменой текущей записи истории браузера, без новой записи: кнопка «Назад» экрана и браузера +возвращает на экран, с которого открыт первый документ, а не к предыдущему выбранному. + +#### Scenario: Назад после перебора документов +- **WHEN** аналитик открыл документ из панели «Организации» консолидации, выбрал в списке «Документ» подряд ещё два + документа и нажал «Назад» +- **THEN** открыт экран консолидации, с которого был открыт первый документ + +#### Scenario: Документ открыт прямой ссылкой +- **WHEN** документ открыт прямой ссылкой в новой вкладке, аналитик выбрал в списке «Документ» другой документ и нажал + «Назад» экрана +- **THEN** открыт список групп компаний `/groups` diff --git a/openspec/changes/document-switcher-history/tasks.md b/openspec/changes/document-switcher-history/tasks.md new file mode 100644 index 0000000..bbc97ec --- /dev/null +++ b/openspec/changes/document-switcher-history/tasks.md @@ -0,0 +1,8 @@ +## 1. Автор (RSHB/arm-core#171, AURORA-1692) + +- [x] 1.1 `web/src/layouts/DocumentPage.tsx`: выбор в списке «Документ» — `navigate(…, { replace: true })`. + +## 2. Ревьюер + +- [x] 2.1 Change `document-switcher-history`: proposal, дельта `document-review-ui` (ADDED «Переключатель документа»). +- [x] 2.2 Проверки фронта на ветке: `tsc`, `eslint`, `prettier --check`, `vitest`.