From fa27e8d918107c3490ed22a5bddffba63e82d655 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D0=B8=D0=BC=D1=83=D1=80=20=D0=93=D0=BE=D1=80=D0=BE?= =?UTF-8?q?=D0=B4=D0=B5=D1=86=D0=BA=D0=B8=D0=B9?= Date: Mon, 28 Sep 2026 14:45:01 +0500 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=BD=D0=B0=D0=B7=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B7=D0=B0=D1=8F=D0=B2=D0=BE=D0=BA=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BF=D0=BE=D0=B4=D0=B1=D0=BE=D1=80=20=D0=B8=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D1=91=D0=BC=20=D0=B1=D0=B5=D0=B7=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B5=D1=84=D0=B8=D0=BA=D1=81=D0=B0=20=D1=82=D0=B8=D0=BF=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Тип заявки и так виден в колонке «Тип», префикс в названии только удлинял его: - подбор: «Должность — Проект»; - приём: «ФИО — Должность — Проект». Уже созданные заявки сохраняют старое название до пересохранения. Co-Authored-By: Claude Opus 5.5 (1M context) --- .../requestPortal/forms/RecruitingHire/submit.ts | 4 ++-- .../requestPortal/forms/RecruitingSelection/submit.ts | 4 ++-- src/webparts/requestPortal/shared/requestTitle.test.ts | 8 ++++---- src/webparts/requestPortal/shared/requestTitle.ts | 9 ++++----- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/webparts/requestPortal/forms/RecruitingHire/submit.ts b/src/webparts/requestPortal/forms/RecruitingHire/submit.ts index bee6fec..c8e1508 100644 --- a/src/webparts/requestPortal/forms/RecruitingHire/submit.ts +++ b/src/webparts/requestPortal/forms/RecruitingHire/submit.ts @@ -17,9 +17,9 @@ export function hireApprovalService(listId?: string): ApprovalListService { return approvalServiceFor(FORM_ID, listId); } -/** Название заявки (Title): «Прием — ФИО кандидата — Должность». */ +/** Название заявки (Title): «ФИО кандидата — Должность — Проект». */ function buildTitle(data: IFormData): string { - return buildRequestTitle('Прием', [data.HireCandidateName, data.Position]); + return buildRequestTitle([data.HireCandidateName, data.Position, data.Project]); } /** Поля элемента списка данных из модели формы (текст/выбор/даты/числа), без статуса. */ diff --git a/src/webparts/requestPortal/forms/RecruitingSelection/submit.ts b/src/webparts/requestPortal/forms/RecruitingSelection/submit.ts index c123a1d..0faf9bf 100644 --- a/src/webparts/requestPortal/forms/RecruitingSelection/submit.ts +++ b/src/webparts/requestPortal/forms/RecruitingSelection/submit.ts @@ -29,9 +29,9 @@ async function resolveUserId(login: string): Promise { return ensured.Id; } -/** Название заявки (Title): «Подбор — Должность — Объект/Проект». */ +/** Название заявки (Title): «Должность — Объект/Проект». */ function buildTitle(data: IFormData): string { - return buildRequestTitle('Подбор', [data.Position, data.ObjectProject]); + return buildRequestTitle([data.Position, data.ObjectProject]); } /** Скалярные/числовые/да-нет поля из модели + название (людей и статус пропускаем — они отдельно). */ diff --git a/src/webparts/requestPortal/shared/requestTitle.test.ts b/src/webparts/requestPortal/shared/requestTitle.test.ts index 2497a67..729f2e0 100644 --- a/src/webparts/requestPortal/shared/requestTitle.test.ts +++ b/src/webparts/requestPortal/shared/requestTitle.test.ts @@ -1,12 +1,12 @@ import { buildRequestTitle } from './requestTitle'; describe('buildRequestTitle', () => { - it('склеивает тип и части через тире', () => { - expect(buildRequestTitle('Подбор', ['Инженер', 'Проект X'])).toBe('Подбор — Инженер — Проект X'); + it('склеивает части через тире', () => { + expect(buildRequestTitle(['Инженер', 'Проект X'])).toBe('Инженер — Проект X'); }); it('пропускает пустые и пробельные части', () => { - expect(buildRequestTitle('Подбор', ['', ' Проект X '])).toBe('Подбор — Проект X'); - expect(buildRequestTitle('Прием', ['', ''])).toBe('Прием'); + expect(buildRequestTitle(['', ' Проект X '])).toBe('Проект X'); + expect(buildRequestTitle(['Иванов Иван', '', ''])).toBe('Иванов Иван'); }); }); diff --git a/src/webparts/requestPortal/shared/requestTitle.ts b/src/webparts/requestPortal/shared/requestTitle.ts index 63c7157..db38805 100644 --- a/src/webparts/requestPortal/shared/requestTitle.ts +++ b/src/webparts/requestPortal/shared/requestTitle.ts @@ -2,11 +2,10 @@ const TITLE_SEPARATOR = ' — '; /** - * Название заявки (системная колонка Title списка данных): тип + ключевые - * поля через тире, пустые части пропускаются — «Подбор — Инженер — Проект X». - * По нему заявку узнают в списке SP, в столбце «Заявка» списка согласования + * Название заявки (системная колонка Title списка данных): ключевые поля через + * тире, пустые части пропускаются — «Инженер — Проект X». По нему заявку узнают в списке SP, в столбце «Заявка» списка согласования * и в колонке «Название» таблиц портала. */ -export function buildRequestTitle(typeLabel: string, parts: string[]): string { - return [typeLabel, ...parts.map((p) => p.trim())].filter(Boolean).join(TITLE_SEPARATOR); +export function buildRequestTitle(parts: string[]): string { + return parts.map((p) => p.trim()).filter(Boolean).join(TITLE_SEPARATOR); }