Спейсы
Сгенерировано из
docs/matrices/fm/spaces.yaml.
| FM | Элемент | Действие | Поведение | Роли (доступ) | Статус |
|---|---|---|---|---|---|
| FM-044 | Кнопка в хедере | Клик | Переход на view=admin | org_admin | done |
| FM-045 | Список спейсов | Просмотр | Таблица: slug, коллекция, участники | org_admin | done |
| FM-046 | Создать спейс | Форма: коллекция + slug | Snapshot специальностей/блоков/слоёв/разделов | org_admin | partial |
| FM-047 | Удалить спейс | Клик + confirm | Только если нет проектов (RESTRICT) | org_admin, site_admin | done |
| FM-048 | Спейс → специальности | Вкл/выкл, добавить | Правка через overlay (migration 011): каждое поле — has_override индикатор; кнопка «Вернуть исходное значение» очищает override (clear-override). Удаление inherited = deleted=TRUE в overlay (можно вернуть через restore). Добавление = is_custom=TRUE строка в overlay. | org_admin | done |
| FM-049 | Спейс → блоки | Вкл/выкл, добавить | Overlay-семантика (migration 011): has_override per field, «Вернуть исходное» — clear-override; удаление inherited → overlay.deleted=TRUE (restore доступен); кастомный блок — is_custom=TRUE. | org_admin | done |
| FM-050 | Спейс → слои | Вкл/выкл, добавить | Overlay (migration 011). Форма слоя содержит поле doc_title (заголовок раздела документа). Если пусто — используется display_name. has_override индикаторы и кнопка «Вернуть исходное значение» рядом с каждым полем. Inherited delete → overlay.deleted=TRUE. | org_admin | done |
| FM-052 | Назначить менеджера спейса | Dropdown из сотрудников | UPDATE space_member SET role=‘spaceman’ | org_admin | done |
| FM-053 | Назначить супервизора | Выбор пользователя | INSERT supervisor_scope | org_admin | partial |
| FM-054 | Supervisor → периметр спейсов | Чекбоксы | INSERT/DELETE supervisor_scope по спейсам | org_admin | partial |
| FM-135 | Добавление участников в спейс | Dropdown из org members → кнопка «Добавить» | Org admin: кого угодно из org с role-селектором. Менеджер спейса: только сотрудников. | spaceman, org_admin | done |
| FM-157 | Soft-delete спейса (формулировка «восстановим из корзины») | Confirm-модал | DELETE /api/spaces/:id (soft). При активных проектах — SPACE_HAS_PROJECTS 409, отдельный диалог. | org_admin, site_admin | done |
| FM-158 | Picker членов из org_member для добавления в спейс с role-селектором | Dropdown + кнопка Добавить | Расширение FM-135. Org admin: всех; Менеджер спейса: только employees. | spaceman, org_admin | done |
| FM-159 | translitId для layer/specialty ids (Cyrillic-safe) | (внутреннее, при создании) | Транслитерация кириллицы в латиницу для ID-генерации (UPPER_SNAKE). | guest, employee, spaceman, supervisor, org_admin, site_admin | done |
Обзор экрана
Экран «Спейсы» — управляющая панель командных спейсов организации. Сюда попадают по кнопке в шапке (видна администратору организации) и видят список спейсов с коллекцией, числом участников и проектов, менеджером каждого спейса.
Отсюда ведётся весь жизненный цикл спейса: создание нового (форма «коллекция + slug»), назначение менеджера (спейсмена) и супервизоров, добавление участников, переход в настройки конкретного спейса и удаление в корзину (только для пустых — при активных проектах удаление блокируется). Личные и гостевые спейсы здесь не показываются: экран — про командные спейсы, которыми управляют.
Большинство действий доступно администратору организации; часть управления отдельным спейсом (участники, настройка) — также его менеджеру. Удаление и назначение менеджера — строго за org_admin.
Методы экрана:
- GET /api/orgs/:orgId/spaces — список командных спейсов организации
- POST /api/orgs/:orgId/spaces — создать спейс
- GET /api/spaces/:id — карточка спейса
- PUT /api/spaces/:id/spaceman — назначить менеджера
- DELETE /api/spaces/:id — удалить спейс (в корзину)