fix: редактор маршрута может удалять исполнителей в Обходном листе, Командировке и заявке в 1С
В этих формах матрице исполнителей (а в Командировке и 1С — и согласующих) не передавалось право удаления, хотя в остальных формах оно есть через composeRemoveRowRule. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -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<IRequestFormProps> = ({
|
||||
<ObligationSection {...sectionProps} />
|
||||
</FormModeProvider>
|
||||
|
||||
<ApprovalMatrix editor={matrix} search={(q) => approval.searchUsers(q)} />
|
||||
<ApprovalMatrix
|
||||
editor={matrix}
|
||||
search={(q) => approval.searchUsers(q)}
|
||||
canRemoveRow={composeRemoveRowRule(effectiveUserEmail(context))}
|
||||
/>
|
||||
|
||||
{!executors.loading && executors.rows.length > 0 && (
|
||||
<ApprovalMatrix
|
||||
@@ -253,6 +259,7 @@ const BusinessTripForm: React.FC<IRequestFormProps> = ({
|
||||
title="Исполнение (после согласования)"
|
||||
roleLabel="Исполнитель"
|
||||
emptyText="Исполнители не заданы по маршруту."
|
||||
canRemoveRow={composeRemoveRowRule(effectiveUserEmail(context))}
|
||||
/>
|
||||
)}
|
||||
|
||||
|
||||
@@ -342,6 +342,7 @@ const ClearanceForm: React.FC<IRequestFormProps> = ({
|
||||
title="Исполнение (после согласования)"
|
||||
roleLabel="Исполнитель"
|
||||
emptyText="Исполнители не заданы по маршруту."
|
||||
canRemoveRow={composeRemoveRowRule(effectiveUserEmail(context))}
|
||||
/>
|
||||
)}
|
||||
|
||||
|
||||
@@ -31,7 +31,8 @@ import {
|
||||
isEditableStatus,
|
||||
IApproverToWrite,
|
||||
unassignedStepMessage,
|
||||
executorsToWrite
|
||||
executorsToWrite,
|
||||
composeRemoveRowRule
|
||||
} from '../../shared/approval';
|
||||
import {
|
||||
uploadAttachments,
|
||||
@@ -444,6 +445,7 @@ const Ticket1CForm: React.FC<IRequestFormProps> = ({
|
||||
<ApprovalMatrix
|
||||
editor={matrixEditor}
|
||||
search={(q) => approval.searchUsers(q)}
|
||||
canRemoveRow={composeRemoveRowRule(effectiveUserEmail(context))}
|
||||
// Пустой маршрут — штатная ситуация: для части видов работ согласование
|
||||
// не нужно, заявка сразу уходит в Planner. Сбой загрузки маршрута
|
||||
// показывается отдельно (matrix.error) и блокирует отправку.
|
||||
@@ -457,6 +459,7 @@ const Ticket1CForm: React.FC<IRequestFormProps> = ({
|
||||
title="Исполнение"
|
||||
roleLabel="Исполнитель"
|
||||
emptyText="Исполнители не назначены."
|
||||
canRemoveRow={composeRemoveRowRule(effectiveUserEmail(context))}
|
||||
/>
|
||||
)}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user