5d2abaf430
Tests / frontend-test (push) Successful in 2m1s
## Что сделано **Чат заявки: отметки и оповещения** - В поле ввода «@» открывает подсказку с участниками заявки: инициатор, согласующие и исполнители из маршрута, а также те, кому открыты «Все заявки» этого типа (список из request-type-access). - Отметка — обычный текст «@ФИО», без штатного упоминания SharePoint, чтобы не уходило его письмо. - После отправки сообщения портал вызывает поток Power Automate (`FLOW_CHAT_NOTIFY_URL`): отмеченным — «Вас упомянули», инициатору — «Новое сообщение по вашей заявке». Сбой потока не мешает отправке. - В письмо добавляется строка «Прикреплены файлы: …», чтобы сообщение из одного файла не приходило пустым. - Свойство веб-части «Чат: уведомлять о своих сообщениях (для теста)», по умолчанию выключено: письма и о своих сообщениях, можно отметить себя. - Когда пишет сам инициатор с отметками, в `initiatorEmail` уходит первый отмеченный — поток шлёт инициатору всегда, если его нет среди отмеченных, и иначе он получил бы письмо о своём же сообщении. **Чат включён для:** Обходной лист, заявка на подбор, заявка на приём, заявка в отдел 1С. **Исправление:** редактор маршрута может удалять исполнителей в Обходном листе, Командировке и заявке в 1С (не передавалось `canRemoveRow`). **Прочее:** убраны 4 предупреждения линтера (`no-new-null`, `no-script-url`). ## Не проверено на тенанте - Ответ потока 200 через AadHttpClient и доставка писем. - Права согласующих на комментарии и на запись в библиотеку «Файлы чата». - Папки в «Файлы чата» наследуют права библиотеки, а не закрыты на заявку — для подбора и приёма это важно решить до выкладки. - Если поток вставляет `messageText` в HTML-письмо, перенос строки перед «Прикреплены файлы» может не отобразиться. --------- Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz> Reviewed-on: http://git.tnsu.kz/timur.gorodetskiy/request-portal/pulls/26
30 lines
1.2 KiB
TypeScript
30 lines
1.2 KiB
TypeScript
// Единая точка импорта чата по заявке.
|
|
export { RequestChat } from './ui/RequestChat';
|
|
export { isChatEnabledFor } from './chatEnabled';
|
|
export { useRequestChat } from './useRequestChat';
|
|
export type { IRequestChat } from './useRequestChat';
|
|
export { getChatMessages, addChatMessage, getChatRequestInfo } from './requestChat.service';
|
|
export type { IChatRequestInfo } from './requestChat.service';
|
|
export {
|
|
buildParticipants,
|
|
findMentionQuery,
|
|
filterParticipants,
|
|
insertMention,
|
|
extractMentionedEmails
|
|
} from './chatMentions';
|
|
export type { IChatParticipant, IMentionQuery } from './chatMentions';
|
|
export { buildChatNotifyBody } from './chatNotify';
|
|
export type { IChatNotifyBody } from './chatNotify';
|
|
export { notifyChatMessage } from './chatNotify.service';
|
|
export {
|
|
uploadChatFiles,
|
|
chatFilesFolderUrl,
|
|
validateChatFiles,
|
|
MAX_FILES_PER_MESSAGE,
|
|
MAX_FILE_SIZE_BYTES
|
|
} from './chatFiles.service';
|
|
export { toChatMessages, buildCommentText, hasAttachments } from './chatMessages';
|
|
export type { ICommentSource } from './chatMessages';
|
|
export { sanitizeFileName, storedFileName, displayFileName, fileStamp } from './chatFileNames';
|
|
export type { IChatMessage, IChatAttachment } from './models/IChatMessage';
|