fix: в колонке «Автор» только создатель заявки

В «Все заявки», «Моих заявках» и «Поиске» ФИО бралось из поискового
свойства Author, где SharePoint перечисляет через «;» всех, кто правил
элемент. У заявки, которую поправил согласующий, в «Авторе» оказывалось
«Инициатор;Согласующий». Теперь ФИО берётся из AuthorOWSUSER — того же
поля «Создано», откуда и почта.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Тимур Городецкий
2026-09-28 16:28:37 +05:00
parent d749bfae26
commit 13ba9c9e37
@@ -101,9 +101,9 @@ const MP_CODE = 'RequestUniqueCodeOWSTEXT';
// (см. комментарий у MP_REQUEST_STATUS), пришлось перепроверять отдельно на // (см. комментарий у MP_REQUEST_STATUS), пришлось перепроверять отдельно на
// то, что значение вообще приходит в ответе. Пришло — все поля, что нужны для // то, что значение вообще приходит в ответе. Пришло — все поля, что нужны для
// строки таблицы «Мои заявки» (title/created — стандартные MP 'Title'/'Created', // строки таблицы «Мои заявки» (title/created — стандартные MP 'Title'/'Created',
// их так же безусловно отдаёт любой список). 'Author' (без суффикса) отдаёт // их так же безусловно отдаёт любой список). 'Author' (без суффикса) — только
// готовое отображаемое имя — короче и надёжнее выковыривать его из // запасной источник ФИО: в нём через «;» все, кто правил элемент, а не один
// MP_AUTHOR/parseAuthorOwsUser, там он нужен только ради почты. // создатель (см. toMyRequestFromSearch); основной — MP_AUTHOR/parseAuthorOwsUser.
const OWN_SELECT_PROPERTIES = ['ListItemID', 'Path', 'Title', 'Created', 'Author', MP_AUTHOR, MP_REQUEST_STATUS, MP_CODE]; const OWN_SELECT_PROPERTIES = ['ListItemID', 'Path', 'Title', 'Created', 'Author', MP_AUTHOR, MP_REQUEST_STATUS, MP_CODE];
/** /**
@@ -1176,9 +1176,12 @@ function toMyRequestFromSearch(entry: ISearchEntry, kind: 'own' | 'other' = 'own
title: (r.Title as string) || '', title: (r.Title as string) || '',
status: (r[MP_REQUEST_STATUS] as string) || '', status: (r[MP_REQUEST_STATUS] as string) || '',
authorEmail: author.email, authorEmail: author.email,
// 'Author' без суффикса — готовое отображаемое имя (см. OWN_SELECT_PROPERTIES); // ФИО — из MP_AUTHOR, того же поля «Создано», откуда и почта. Встроенное
// из MP_AUTHOR парсим только как запасной вариант, если 'Author' пуст. // свойство 'Author' НЕ годится основным источником: Search собирает в нём
authorName: ((r.Author as string) || author.name || '').trim(), // через «;» всех, кто правил элемент, и у заявки, которую поправил
// согласующий, в колонке «Автор» оказывалось «Инициатор;Согласующий».
// 'Author' — только запасной вариант, и из него берём первое имя.
authorName: (author.name || ((r.Author as string) || '').split(';')[0] || '').trim(),
created: (r.Created as string) || '', created: (r.Created as string) || '',
requestTypeId: entry.type.id, requestTypeId: entry.type.id,
requestTypeName: entry.type.name, requestTypeName: entry.type.name,