diff --git a/src/webparts/requestPortal/features/myRequests/myRequests.service.ts b/src/webparts/requestPortal/features/myRequests/myRequests.service.ts index 8983a23..85a46c4 100644 --- a/src/webparts/requestPortal/features/myRequests/myRequests.service.ts +++ b/src/webparts/requestPortal/features/myRequests/myRequests.service.ts @@ -101,9 +101,9 @@ const MP_CODE = 'RequestUniqueCodeOWSTEXT'; // (см. комментарий у MP_REQUEST_STATUS), пришлось перепроверять отдельно на // то, что значение вообще приходит в ответе. Пришло — все поля, что нужны для // строки таблицы «Мои заявки» (title/created — стандартные MP 'Title'/'Created', -// их так же безусловно отдаёт любой список). 'Author' (без суффикса) отдаёт -// готовое отображаемое имя — короче и надёжнее выковыривать его из -// MP_AUTHOR/parseAuthorOwsUser, там он нужен только ради почты. +// их так же безусловно отдаёт любой список). 'Author' (без суффикса) — только +// запасной источник ФИО: в нём через «;» все, кто правил элемент, а не один +// создатель (см. toMyRequestFromSearch); основной — MP_AUTHOR/parseAuthorOwsUser. 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) || '', status: (r[MP_REQUEST_STATUS] as string) || '', authorEmail: author.email, - // 'Author' без суффикса — готовое отображаемое имя (см. OWN_SELECT_PROPERTIES); - // из MP_AUTHOR парсим только как запасной вариант, если 'Author' пуст. - authorName: ((r.Author as string) || author.name || '').trim(), + // ФИО — из MP_AUTHOR, того же поля «Создано», откуда и почта. Встроенное + // свойство 'Author' НЕ годится основным источником: Search собирает в нём + // через «;» всех, кто правил элемент, и у заявки, которую поправил + // согласующий, в колонке «Автор» оказывалось «Инициатор;Согласующий». + // 'Author' — только запасной вариант, и из него берём первое имя. + authorName: (author.name || ((r.Author as string) || '').split(';')[0] || '').trim(), created: (r.Created as string) || '', requestTypeId: entry.type.id, requestTypeName: entry.type.name,