diff --git a/src/webparts/requestPortal/forms/BusinessTrip/BusinessTripForm.tsx b/src/webparts/requestPortal/forms/BusinessTrip/BusinessTripForm.tsx index 1fe105b..335b6d8 100644 --- a/src/webparts/requestPortal/forms/BusinessTrip/BusinessTripForm.tsx +++ b/src/webparts/requestPortal/forms/BusinessTrip/BusinessTripForm.tsx @@ -27,8 +27,10 @@ import { IApproverToWrite, IUseMatrixEditor, unassignedStepMessage, - resolveWriteListId + resolveWriteListId, + composeRemoveRowRule } from '../../shared/approval'; +import { effectiveUserEmail } from '../../shared/impersonation'; import { IRequestFormProps } from '../../models/types'; import { friendlyErrorMessage } from '../../shared/diagnostics'; import { @@ -244,7 +246,11 @@ const BusinessTripForm: React.FC = ({ - approval.searchUsers(q)} /> + approval.searchUsers(q)} + canRemoveRow={composeRemoveRowRule(effectiveUserEmail(context))} + /> {!executors.loading && executors.rows.length > 0 && ( = ({ title="Исполнение (после согласования)" roleLabel="Исполнитель" emptyText="Исполнители не заданы по маршруту." + canRemoveRow={composeRemoveRowRule(effectiveUserEmail(context))} /> )} diff --git a/src/webparts/requestPortal/forms/Clearance/ClearanceForm.tsx b/src/webparts/requestPortal/forms/Clearance/ClearanceForm.tsx index ff883da..da65523 100644 --- a/src/webparts/requestPortal/forms/Clearance/ClearanceForm.tsx +++ b/src/webparts/requestPortal/forms/Clearance/ClearanceForm.tsx @@ -342,6 +342,7 @@ const ClearanceForm: React.FC = ({ title="Исполнение (после согласования)" roleLabel="Исполнитель" emptyText="Исполнители не заданы по маршруту." + canRemoveRow={composeRemoveRowRule(effectiveUserEmail(context))} /> )} diff --git a/src/webparts/requestPortal/forms/Ticket1C/Ticket1CForm.tsx b/src/webparts/requestPortal/forms/Ticket1C/Ticket1CForm.tsx index 39d8871..cc98ac2 100644 --- a/src/webparts/requestPortal/forms/Ticket1C/Ticket1CForm.tsx +++ b/src/webparts/requestPortal/forms/Ticket1C/Ticket1CForm.tsx @@ -31,7 +31,8 @@ import { isEditableStatus, IApproverToWrite, unassignedStepMessage, - executorsToWrite + executorsToWrite, + composeRemoveRowRule } from '../../shared/approval'; import { uploadAttachments, @@ -444,6 +445,7 @@ const Ticket1CForm: React.FC = ({ approval.searchUsers(q)} + canRemoveRow={composeRemoveRowRule(effectiveUserEmail(context))} // Пустой маршрут — штатная ситуация: для части видов работ согласование // не нужно, заявка сразу уходит в Planner. Сбой загрузки маршрута // показывается отдельно (matrix.error) и блокирует отправку. @@ -457,6 +459,7 @@ const Ticket1CForm: React.FC = ({ title="Исполнение" roleLabel="Исполнитель" emptyText="Исполнители не назначены." + canRemoveRow={composeRemoveRowRule(effectiveUserEmail(context))} /> )}