feat: объявление в Teams — открывать портал в браузере
В приложении Teams часть функций портала работает ограниченно. На главной в Teams теперь показывается объявление со ссылкой на страницу портала, которая открывается во внешнем браузере. В браузере объявление не показывается. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -28,6 +28,7 @@ import { getImpersonatedEmail, getImpersonatedDisplayName } from '../shared/impe
|
|||||||
import { confirmDiscardFormChanges, markFormClean, markFormDirty } from '../shared/unsavedChanges';
|
import { confirmDiscardFormChanges, markFormClean, markFormDirty } from '../shared/unsavedChanges';
|
||||||
import { Drawer } from './Drawer/Drawer';
|
import { Drawer } from './Drawer/Drawer';
|
||||||
import { CategoryTabs } from './CategoryTabs/CategoryTabs';
|
import { CategoryTabs } from './CategoryTabs/CategoryTabs';
|
||||||
|
import { TeamsBrowserNotice } from './TeamsBrowserNotice/TeamsBrowserNotice';
|
||||||
import { CATEGORIES, DEFAULT_CATEGORY_ID } from '../data/categories';
|
import { CATEGORIES, DEFAULT_CATEGORY_ID } from '../data/categories';
|
||||||
import { REQUEST_TYPES } from '../data/requests';
|
import { REQUEST_TYPES } from '../data/requests';
|
||||||
import SubmitFeature from '../features/submit/SubmitFeature';
|
import SubmitFeature from '../features/submit/SubmitFeature';
|
||||||
@@ -455,6 +456,7 @@ const RequestPortal: React.FC<IRequestPortalProps> = ({ hasTeamsContext, context
|
|||||||
onInput={markFormDirty}
|
onInput={markFormDirty}
|
||||||
onChange={markFormDirty}
|
onChange={markFormDirty}
|
||||||
>
|
>
|
||||||
|
{hasTeamsContext && <TeamsBrowserNotice />}
|
||||||
<div className={styles.tabsWrap}>
|
<div className={styles.tabsWrap}>
|
||||||
<CategoryTabs
|
<CategoryTabs
|
||||||
categories={CATEGORIES}
|
categories={CATEGORIES}
|
||||||
|
|||||||
+30
@@ -0,0 +1,30 @@
|
|||||||
|
@import '../../../../styles/design-tokens';
|
||||||
|
|
||||||
|
// Объявление в тоне портала (золото), а не красная ошибка: это рекомендация.
|
||||||
|
.notice {
|
||||||
|
margin-bottom: $sp-4;
|
||||||
|
padding: $sp-3 $sp-4;
|
||||||
|
border: 1px solid $gold-400;
|
||||||
|
border-left-width: 4px;
|
||||||
|
border-radius: $r-md;
|
||||||
|
background: $gold-50;
|
||||||
|
color: $navy-900;
|
||||||
|
font-size: $fs-sm;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text {
|
||||||
|
margin: $sp-1 0 $sp-2;
|
||||||
|
overflow-wrap: anywhere;
|
||||||
|
}
|
||||||
|
|
||||||
|
.link {
|
||||||
|
font-weight: 600;
|
||||||
|
color: $amber-700;
|
||||||
|
text-decoration: underline;
|
||||||
|
text-underline-offset: 2px;
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
import * as React from 'react';
|
||||||
|
import styles from './TeamsBrowserNotice.module.scss';
|
||||||
|
import { PORTAL_PAGE_URL } from '../../shared/config';
|
||||||
|
|
||||||
|
const NOTICE_TITLE = 'Уважаемые пользователи!';
|
||||||
|
const NOTICE_TEXT =
|
||||||
|
'Для корректной работы портала заявок рекомендуем открывать его в браузере (Microsoft Edge, Google Chrome). ' +
|
||||||
|
'В приложении Microsoft Teams отдельные функции портала могут работать ограниченно.';
|
||||||
|
const LINK_TEXT = 'Открыть портал в браузере →';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Объявление на главной портала, когда он открыт в Teams: в Teams хуже
|
||||||
|
* работают пикеры, печать и скачивание вложений. Ссылка с target="_blank" —
|
||||||
|
* Teams открывает такие ссылки во внешнем браузере.
|
||||||
|
*/
|
||||||
|
export const TeamsBrowserNotice: React.FC = () => (
|
||||||
|
<div className={styles.notice} role="note">
|
||||||
|
<div className={styles.title}>{NOTICE_TITLE}</div>
|
||||||
|
<p className={styles.text}>{NOTICE_TEXT}</p>
|
||||||
|
<a className={styles.link} href={PORTAL_PAGE_URL} target="_blank" rel="noopener noreferrer">
|
||||||
|
{LINK_TEXT}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
@@ -15,6 +15,13 @@ export const DATA_SITE_URL = 'https://tnsukz.sharepoint.com/sites/requests';
|
|||||||
export const USER_GUIDE_URL =
|
export const USER_GUIDE_URL =
|
||||||
'https://tnsukz.sharepoint.com/:w:/r/sites/knowledge/DocLib8/%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D0%B8%20%D0%BA%20IT%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0%D0%BC/%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F%20-%20%D0%9F%D0%BE%D1%80%D1%82%D0%B0%D0%BB%20%D0%B7%D0%B0%D1%8F%D0%B2%D0%BE%D0%BA.docx?d=wce77e8a0d19d49b5b2fcdf13828e8bb3&csf=1&web=1&e=p9V3hU';
|
'https://tnsukz.sharepoint.com/:w:/r/sites/knowledge/DocLib8/%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D0%B8%20%D0%BA%20IT%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0%D0%BC/%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F%20-%20%D0%9F%D0%BE%D1%80%D1%82%D0%B0%D0%BB%20%D0%B7%D0%B0%D1%8F%D0%B2%D0%BE%D0%BA.docx?d=wce77e8a0d19d49b5b2fcdf13828e8bb3&csf=1&web=1&e=p9V3hU';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Страница портала в SharePoint — ссылка «Открыть портал в браузере» в
|
||||||
|
* объявлении для Teams (см. components/TeamsBrowserNotice). Внутри Teams
|
||||||
|
* портал свой адрес не знает (вкладка Teams — служебная страница), поэтому задан явно.
|
||||||
|
*/
|
||||||
|
export const PORTAL_PAGE_URL = `${DATA_SITE_URL}/SitePages/${encodeURIComponent('Портал-Заявок')}.aspx`;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Внешний approval-route API (маршруты согласования по ролям).
|
* Внешний approval-route API (маршруты согласования по ролям).
|
||||||
* Авторизация — AadHttpClient (SSO текущего пользователя) по clientId
|
* Авторизация — AadHttpClient (SSO текущего пользователя) по clientId
|
||||||
|
|||||||
Reference in New Issue
Block a user