чат по заявке через комментарии к строке списка (#14)
Tests / frontend-test (push) Successful in 1m15s
Tests / frontend-test (push) Successful in 1m15s
Обсуждение заявки поверх штатных комментариев SharePoint (PnPjs item.comments) — без новых колонок и провижининга, права на переписку раздаёт сам SharePoint по правам на элемент. Встроено в ApproveFeature и EditFeature (единственные входы в просмотр заявки для всех типов), поэтому доступно автору, всем согласующим (включая уже решивших и ещё не дошедших до своего шага) и исполнителям, а не только текущему шагу маршрута, как DecisionPanel. Автора комментария всегда ставит реальная учётка — отладочная подмена личности на запись в SharePoint не влияет, в UI есть предупреждение. --------- Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz> Reviewed-on: http://git.tnsu.kz/timur.gorodetskiy/request-portal/pulls/14
This commit was merged in pull request #14.
This commit is contained in:
@@ -3,6 +3,7 @@ import type { WebPartContext } from '@microsoft/sp-webpart-base';
|
||||
import styles from './ApproveFeature.module.scss';
|
||||
import { getViewComponent } from '../../forms/viewRegistry';
|
||||
import { isConfirmedStaleListId } from '../../shared/approval';
|
||||
import { RequestChat, isChatEnabledFor } from '../../shared/chat';
|
||||
|
||||
export interface IApproveFeatureProps {
|
||||
context: WebPartContext;
|
||||
@@ -14,8 +15,14 @@ export interface IApproveFeatureProps {
|
||||
listId?: string;
|
||||
}
|
||||
|
||||
// Фича «Согласование»: открывается по ссылке из потока (mode=approve&type=&id=).
|
||||
// Показывает заявку в режиме чтения; панель решения добавим следующим шагом.
|
||||
// Фича «Согласование»: открывается по ссылке из потока (mode=approve&type=&id=)
|
||||
// и кликом по строке любой таблицы заявок. Показывает заявку в режиме чтения
|
||||
// (панель решения — внутри самой формы просмотра, она зависит от её полей).
|
||||
//
|
||||
// Обсуждение (чат) добавлено ЗДЕСЬ, а не в девяти <Форма>View.tsx: оно ничего не
|
||||
// знает о полях конкретной формы, а эта фича — единственный вход в просмотр
|
||||
// заявки, общий для всех типов. Стоит вне .rp-print-root формы, поэтому в
|
||||
// печатную версию заявки переписка не попадает.
|
||||
const ApproveFeature: React.FC<IApproveFeatureProps> = ({ context, formKey, itemId, listId }) => {
|
||||
const ViewComponent = getViewComponent(formKey);
|
||||
|
||||
@@ -31,9 +38,18 @@ const ApproveFeature: React.FC<IApproveFeatureProps> = ({ context, formKey, item
|
||||
{partitionError ? (
|
||||
<div className={styles.state}>{partitionError}</div>
|
||||
) : ViewComponent ? (
|
||||
<React.Suspense fallback={<div className={styles.state}>Загрузка…</div>}>
|
||||
<ViewComponent context={context} itemId={itemId} formKey={formKey} listId={listId} />
|
||||
</React.Suspense>
|
||||
<>
|
||||
<React.Suspense fallback={<div className={styles.state}>Загрузка…</div>}>
|
||||
<ViewComponent context={context} itemId={itemId} formKey={formKey} listId={listId} />
|
||||
</React.Suspense>
|
||||
{/* Доступно всем, кто может открыть заявку: автору, всем согласующим
|
||||
(и уже решившим, и ещё ждущим своей очереди) и исполнителям —
|
||||
в отличие от панели решения, которая видна только текущему шагу.
|
||||
Пока включено только для «Обходного листа» — см. isChatEnabledFor. */}
|
||||
{isChatEnabledFor(formKey) && (
|
||||
<RequestChat context={context} formKey={formKey} itemId={itemId} listId={listId} />
|
||||
)}
|
||||
</>
|
||||
) : (
|
||||
<div className={styles.state}>Для формы «{formKey}» режим согласования пока не настроен.</div>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user