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,
|
IApproverToWrite,
|
||||||
IUseMatrixEditor,
|
IUseMatrixEditor,
|
||||||
unassignedStepMessage,
|
unassignedStepMessage,
|
||||||
resolveWriteListId
|
resolveWriteListId,
|
||||||
|
composeRemoveRowRule
|
||||||
} from '../../shared/approval';
|
} from '../../shared/approval';
|
||||||
|
import { effectiveUserEmail } from '../../shared/impersonation';
|
||||||
import { IRequestFormProps } from '../../models/types';
|
import { IRequestFormProps } from '../../models/types';
|
||||||
import { friendlyErrorMessage } from '../../shared/diagnostics';
|
import { friendlyErrorMessage } from '../../shared/diagnostics';
|
||||||
import {
|
import {
|
||||||
@@ -244,7 +246,11 @@ const BusinessTripForm: React.FC<IRequestFormProps> = ({
|
|||||||
<ObligationSection {...sectionProps} />
|
<ObligationSection {...sectionProps} />
|
||||||
</FormModeProvider>
|
</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 && (
|
{!executors.loading && executors.rows.length > 0 && (
|
||||||
<ApprovalMatrix
|
<ApprovalMatrix
|
||||||
@@ -253,6 +259,7 @@ const BusinessTripForm: React.FC<IRequestFormProps> = ({
|
|||||||
title="Исполнение (после согласования)"
|
title="Исполнение (после согласования)"
|
||||||
roleLabel="Исполнитель"
|
roleLabel="Исполнитель"
|
||||||
emptyText="Исполнители не заданы по маршруту."
|
emptyText="Исполнители не заданы по маршруту."
|
||||||
|
canRemoveRow={composeRemoveRowRule(effectiveUserEmail(context))}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|||||||
@@ -342,6 +342,7 @@ const ClearanceForm: React.FC<IRequestFormProps> = ({
|
|||||||
title="Исполнение (после согласования)"
|
title="Исполнение (после согласования)"
|
||||||
roleLabel="Исполнитель"
|
roleLabel="Исполнитель"
|
||||||
emptyText="Исполнители не заданы по маршруту."
|
emptyText="Исполнители не заданы по маршруту."
|
||||||
|
canRemoveRow={composeRemoveRowRule(effectiveUserEmail(context))}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,8 @@ import {
|
|||||||
isEditableStatus,
|
isEditableStatus,
|
||||||
IApproverToWrite,
|
IApproverToWrite,
|
||||||
unassignedStepMessage,
|
unassignedStepMessage,
|
||||||
executorsToWrite
|
executorsToWrite,
|
||||||
|
composeRemoveRowRule
|
||||||
} from '../../shared/approval';
|
} from '../../shared/approval';
|
||||||
import {
|
import {
|
||||||
uploadAttachments,
|
uploadAttachments,
|
||||||
@@ -444,6 +445,7 @@ const Ticket1CForm: React.FC<IRequestFormProps> = ({
|
|||||||
<ApprovalMatrix
|
<ApprovalMatrix
|
||||||
editor={matrixEditor}
|
editor={matrixEditor}
|
||||||
search={(q) => approval.searchUsers(q)}
|
search={(q) => approval.searchUsers(q)}
|
||||||
|
canRemoveRow={composeRemoveRowRule(effectiveUserEmail(context))}
|
||||||
// Пустой маршрут — штатная ситуация: для части видов работ согласование
|
// Пустой маршрут — штатная ситуация: для части видов работ согласование
|
||||||
// не нужно, заявка сразу уходит в Planner. Сбой загрузки маршрута
|
// не нужно, заявка сразу уходит в Planner. Сбой загрузки маршрута
|
||||||
// показывается отдельно (matrix.error) и блокирует отправку.
|
// показывается отдельно (matrix.error) и блокирует отправку.
|
||||||
@@ -457,6 +459,7 @@ const Ticket1CForm: React.FC<IRequestFormProps> = ({
|
|||||||
title="Исполнение"
|
title="Исполнение"
|
||||||
roleLabel="Исполнитель"
|
roleLabel="Исполнитель"
|
||||||
emptyText="Исполнители не назначены."
|
emptyText="Исполнители не назначены."
|
||||||
|
canRemoveRow={composeRemoveRowRule(effectiveUserEmail(context))}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user