В форме можно добавить несколько сотрудников списком; уже имеющие доступ
к выбранному типу не предлагаются. Ошибки по отдельным сотрудникам не отменяют
остальных — неудавшиеся остаются в списке.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Имя формирует бэкенд и отдаёт в Content-Disposition (он добавлен в
экспонируемые заголовки CORS), фронт сохраняет файл под этим именем.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Бэкенд сам читает маршруты, шаги и справочники портала (сотрудники с должностями,
компании, отделы), фронт шлёт только id типов заявок и скачивает файл.
Колонки: №, Роль, Исполнитель, Организация, Условие, Комментарий.
Согласующие и исполнители — отдельными таблицами. Условие по CompaniesJson
показывается как «организация». Директор Tansu и Управляющий директор Tansu
выводятся с ФИО. Комментарий «назначает согласующего/исполнителя» — при галочке
переназначения.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Выбранные типы заявок выгружаются в xlsx (лист на тип: №, роль, исполнитель,
условие) через POST /api/reports/routes. Пункт меню стоит после «Проверки
маршрута», «Доступ к заявкам» — последним.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Права на заявку выдаёт бэкенд по вебхуку на изменение элемента списка данных.
Массовая и одиночная замена писали только в список согласования, вебхук не
приходил, и новый человек видел «Элемент не найден». Теперь после смены
(и добавления шага) в заявку пишется её текущий RequestStatus — появляется
новая версия элемента.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
---------
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/28
Канву SharePoint мы и раньше разжимали (тот же :global хак + supportsFullBleed
в манифесте), но содержимое упиралось в max-width: 1080px у .content и
центрировалось — визуально это читалось как «не открывается на всю ширину».
Переношу раскладку портала (RequestPortal.module.scss):
- корень .approvalAdmin — width: 100%, padding: 0;
- .shell больше не карточка: без рамки, тени, скруглений и overflow: hidden
(последний ломает sticky), align-items: flex-start, min-height: 78vh;
- .side — заливка $navy-800 на колонке (align-self: stretch), сам Sidebar
внутри sticky на 100vh: градиент не плывёт от высоты соседа, и под рейлом
на длинных таблицах нет белого провала, если sticky не включился;
- .content — сняты max-width и margin: auto, остались только отступы;
- мобильный брейкпоинт обновлён под новую схему: десктопные правила рейла
снимаются явно, иначе sticky+100vh спорил бы с position: fixed, который
ui-kit ставит drawer'у, при равной специфичности.
Разметка AdminApp.tsx не менялась — структура уже совпадала с портальной.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
---------
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/17
Правила из frontend/.gitignore перенесены в корневой .gitignore,
дублирующий файл удалён. README дополнен описанием SPFx frontend
(ApprovalAdmin), который ранее был ошибочно указан как отсутствующий.