mirror of
https://github.com/IRBorisov/ConceptPortal.git
synced 2025-06-26 13:00:39 +03:00
Improve help pages
This commit is contained in:
parent
10d1da917d
commit
d4d1c81bdc
|
@ -37,6 +37,11 @@ export type FontStyle = 'controls' | 'main' | 'math' | 'math2';
|
||||||
export enum HelpTopic {
|
export enum HelpTopic {
|
||||||
MAIN = 'main',
|
MAIN = 'main',
|
||||||
|
|
||||||
|
DOCS = 'documentation',
|
||||||
|
RULES = 'rules',
|
||||||
|
PRIVACY = 'privacy',
|
||||||
|
API = 'api',
|
||||||
|
|
||||||
INTERFACE = 'user-interface',
|
INTERFACE = 'user-interface',
|
||||||
UI_LIBRARY = 'ui-library',
|
UI_LIBRARY = 'ui-library',
|
||||||
UI_RS_MENU = 'ui-rsform-menu',
|
UI_RS_MENU = 'ui-rsform-menu',
|
||||||
|
@ -62,10 +67,9 @@ export enum HelpTopic {
|
||||||
RSL_TEMPLATES = 'rslang-templates',
|
RSL_TEMPLATES = 'rslang-templates',
|
||||||
|
|
||||||
TERM_CONTROL = 'terminology-control',
|
TERM_CONTROL = 'terminology-control',
|
||||||
|
ACCESS = 'access',
|
||||||
VERSIONS = 'versions',
|
VERSIONS = 'versions',
|
||||||
EXTEOR = 'exteor',
|
EXTEOR = 'exteor'
|
||||||
API = 'api',
|
|
||||||
PRIVACY = 'privacy'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -74,6 +78,11 @@ export enum HelpTopic {
|
||||||
export const topicParent: Map<HelpTopic, HelpTopic> = new Map([
|
export const topicParent: Map<HelpTopic, HelpTopic> = new Map([
|
||||||
[HelpTopic.MAIN, HelpTopic.MAIN],
|
[HelpTopic.MAIN, HelpTopic.MAIN],
|
||||||
|
|
||||||
|
[HelpTopic.DOCS, HelpTopic.DOCS],
|
||||||
|
[HelpTopic.RULES, HelpTopic.DOCS],
|
||||||
|
[HelpTopic.API, HelpTopic.DOCS],
|
||||||
|
[HelpTopic.PRIVACY, HelpTopic.DOCS],
|
||||||
|
|
||||||
[HelpTopic.INTERFACE, HelpTopic.INTERFACE],
|
[HelpTopic.INTERFACE, HelpTopic.INTERFACE],
|
||||||
[HelpTopic.UI_LIBRARY, HelpTopic.INTERFACE],
|
[HelpTopic.UI_LIBRARY, HelpTopic.INTERFACE],
|
||||||
[HelpTopic.UI_RS_MENU, HelpTopic.INTERFACE],
|
[HelpTopic.UI_RS_MENU, HelpTopic.INTERFACE],
|
||||||
|
@ -99,16 +108,15 @@ export const topicParent: Map<HelpTopic, HelpTopic> = new Map([
|
||||||
[HelpTopic.RSL_TEMPLATES, HelpTopic.RSLANG],
|
[HelpTopic.RSL_TEMPLATES, HelpTopic.RSLANG],
|
||||||
|
|
||||||
[HelpTopic.TERM_CONTROL, HelpTopic.TERM_CONTROL],
|
[HelpTopic.TERM_CONTROL, HelpTopic.TERM_CONTROL],
|
||||||
|
[HelpTopic.ACCESS, HelpTopic.ACCESS],
|
||||||
[HelpTopic.VERSIONS, HelpTopic.VERSIONS],
|
[HelpTopic.VERSIONS, HelpTopic.VERSIONS],
|
||||||
[HelpTopic.EXTEOR, HelpTopic.EXTEOR],
|
[HelpTopic.EXTEOR, HelpTopic.EXTEOR]
|
||||||
[HelpTopic.API, HelpTopic.API],
|
|
||||||
[HelpTopic.PRIVACY, HelpTopic.PRIVACY]
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Topics that can be folded.
|
* Topics that can be folded.
|
||||||
*/
|
*/
|
||||||
export const foldableTopics = [HelpTopic.INTERFACE, HelpTopic.RSLANG, HelpTopic.CONCEPTUAL];
|
export const foldableTopics = [HelpTopic.INTERFACE, HelpTopic.RSLANG, HelpTopic.CONCEPTUAL, HelpTopic.DOCS];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents {@link IConstituenta} matching mode.
|
* Represents {@link IConstituenta} matching mode.
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import { HelpTopic } from '@/models/miscellaneous';
|
import { HelpTopic } from '@/models/miscellaneous';
|
||||||
|
|
||||||
|
import HelpAccess from './items/HelpAccess';
|
||||||
import HelpAPI from './items/HelpAPI';
|
import HelpAPI from './items/HelpAPI';
|
||||||
import HelpConcept from './items/HelpConcept';
|
import HelpConcept from './items/HelpConcept';
|
||||||
import HelpConceptRelations from './items/HelpConceptRelations';
|
import HelpConceptRelations from './items/HelpConceptRelations';
|
||||||
|
@ -9,6 +10,7 @@ import HelpCstAttributes from './items/HelpCstAttributes';
|
||||||
import HelpCstClass from './items/HelpCstClass';
|
import HelpCstClass from './items/HelpCstClass';
|
||||||
import HelpCstEditor from './items/HelpCstEditor';
|
import HelpCstEditor from './items/HelpCstEditor';
|
||||||
import HelpCstStatus from './items/HelpCstStatus';
|
import HelpCstStatus from './items/HelpCstStatus';
|
||||||
|
import HelpDocs from './items/HelpDocs';
|
||||||
import HelpExteor from './items/HelpExteor';
|
import HelpExteor from './items/HelpExteor';
|
||||||
import HelpFormulaTree from './items/HelpFormulaTree';
|
import HelpFormulaTree from './items/HelpFormulaTree';
|
||||||
import HelpInterface from './items/HelpInterface';
|
import HelpInterface from './items/HelpInterface';
|
||||||
|
@ -24,6 +26,7 @@ import HelpRSLangInterpret from './items/HelpRSLangInterpret';
|
||||||
import HelpRSLangOperations from './items/HelpRSLangOperations';
|
import HelpRSLangOperations from './items/HelpRSLangOperations';
|
||||||
import HelpRSLangTemplates from './items/HelpRSLangTemplates';
|
import HelpRSLangTemplates from './items/HelpRSLangTemplates';
|
||||||
import HelpRSLangTypes from './items/HelpRSLangTypes';
|
import HelpRSLangTypes from './items/HelpRSLangTypes';
|
||||||
|
import HelpRules from './items/HelpRules';
|
||||||
import HelpTermGraph from './items/HelpTermGraph';
|
import HelpTermGraph from './items/HelpTermGraph';
|
||||||
import HelpTerminologyControl from './items/HelpTerminologyControl';
|
import HelpTerminologyControl from './items/HelpTerminologyControl';
|
||||||
import HelpVersions from './items/HelpVersions';
|
import HelpVersions from './items/HelpVersions';
|
||||||
|
@ -35,6 +38,11 @@ interface TopicPageProps {
|
||||||
function TopicPage({ topic }: TopicPageProps) {
|
function TopicPage({ topic }: TopicPageProps) {
|
||||||
if (topic === HelpTopic.MAIN) return <HelpPortal />;
|
if (topic === HelpTopic.MAIN) return <HelpPortal />;
|
||||||
|
|
||||||
|
if (topic === HelpTopic.DOCS) return <HelpDocs />;
|
||||||
|
if (topic === HelpTopic.RULES) return <HelpRules />;
|
||||||
|
if (topic === HelpTopic.PRIVACY) return <HelpPrivacy />;
|
||||||
|
if (topic === HelpTopic.API) return <HelpAPI />;
|
||||||
|
|
||||||
if (topic === HelpTopic.INTERFACE) return <HelpInterface />;
|
if (topic === HelpTopic.INTERFACE) return <HelpInterface />;
|
||||||
if (topic === HelpTopic.UI_LIBRARY) return <HelpLibrary />;
|
if (topic === HelpTopic.UI_LIBRARY) return <HelpLibrary />;
|
||||||
if (topic === HelpTopic.UI_RS_MENU) return <HelpRSFormMenu />;
|
if (topic === HelpTopic.UI_RS_MENU) return <HelpRSFormMenu />;
|
||||||
|
@ -60,10 +68,9 @@ function TopicPage({ topic }: TopicPageProps) {
|
||||||
if (topic === HelpTopic.RSL_TEMPLATES) return <HelpRSLangTemplates />;
|
if (topic === HelpTopic.RSL_TEMPLATES) return <HelpRSLangTemplates />;
|
||||||
|
|
||||||
if (topic === HelpTopic.TERM_CONTROL) return <HelpTerminologyControl />;
|
if (topic === HelpTopic.TERM_CONTROL) return <HelpTerminologyControl />;
|
||||||
|
if (topic === HelpTopic.ACCESS) return <HelpAccess />;
|
||||||
if (topic === HelpTopic.VERSIONS) return <HelpVersions />;
|
if (topic === HelpTopic.VERSIONS) return <HelpVersions />;
|
||||||
if (topic === HelpTopic.EXTEOR) return <HelpExteor />;
|
if (topic === HelpTopic.EXTEOR) return <HelpExteor />;
|
||||||
if (topic === HelpTopic.API) return <HelpAPI />;
|
|
||||||
if (topic === HelpTopic.PRIVACY) return <HelpPrivacy />;
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
function HelpAccess() {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<h1>Организация доступов к схемам</h1>
|
||||||
|
<p>TBD.</p>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default HelpAccess;
|
16
rsconcept/frontend/src/pages/ManualsPage/items/HelpDocs.tsx
Normal file
16
rsconcept/frontend/src/pages/ManualsPage/items/HelpDocs.tsx
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
import { HelpTopic } from '@/models/miscellaneous';
|
||||||
|
|
||||||
|
import Subtopics from '../Subtopics';
|
||||||
|
|
||||||
|
function HelpDocs() {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<h1>Документы</h1>
|
||||||
|
<p>TBD.</p>
|
||||||
|
|
||||||
|
<Subtopics headTopic={HelpTopic.DOCS} />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default HelpDocs;
|
|
@ -39,14 +39,14 @@ function HelpPortal() {
|
||||||
|
|
||||||
<h2>Разделы Справки</h2>
|
<h2>Разделы Справки</h2>
|
||||||
{[
|
{[
|
||||||
|
HelpTopic.DOCS,
|
||||||
HelpTopic.INTERFACE,
|
HelpTopic.INTERFACE,
|
||||||
HelpTopic.CONCEPTUAL,
|
HelpTopic.CONCEPTUAL,
|
||||||
HelpTopic.RSLANG,
|
HelpTopic.RSLANG,
|
||||||
HelpTopic.TERM_CONTROL,
|
HelpTopic.TERM_CONTROL,
|
||||||
|
HelpTopic.ACCESS,
|
||||||
HelpTopic.VERSIONS,
|
HelpTopic.VERSIONS,
|
||||||
HelpTopic.EXTEOR,
|
HelpTopic.EXTEOR
|
||||||
HelpTopic.API,
|
|
||||||
HelpTopic.PRIVACY
|
|
||||||
].map(topic => (
|
].map(topic => (
|
||||||
<TopicItem key={`${prefixes.topic_item}${topic}`} topic={topic} />
|
<TopicItem key={`${prefixes.topic_item}${topic}`} topic={topic} />
|
||||||
))}
|
))}
|
||||||
|
|
10
rsconcept/frontend/src/pages/ManualsPage/items/HelpRules.tsx
Normal file
10
rsconcept/frontend/src/pages/ManualsPage/items/HelpRules.tsx
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
function HelpRules() {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<h1>Правила Портала</h1>
|
||||||
|
<p>TBD.</p>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default HelpRules;
|
|
@ -61,7 +61,7 @@ function AccessToolbar({ visible, toggleVisible, readOnly, toggleReadOnly }: Acc
|
||||||
disabled={accessLevel === UserLevel.READER || controller.isProcessing}
|
disabled={accessLevel === UserLevel.READER || controller.isProcessing}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<BadgeHelp topic={HelpTopic.VERSIONS} className='max-w-[30rem]' offset={4} />
|
<BadgeHelp topic={HelpTopic.ACCESS} className='max-w-[30rem]' offset={4} />
|
||||||
</div>
|
</div>
|
||||||
</Overlay>
|
</Overlay>
|
||||||
);
|
);
|
||||||
|
|
|
@ -21,6 +21,7 @@ import AnimateFade from '@/components/wrap/AnimateFade';
|
||||||
import ExpectedAnonymous from '@/components/wrap/ExpectedAnonymous';
|
import ExpectedAnonymous from '@/components/wrap/ExpectedAnonymous';
|
||||||
import { useAuth } from '@/context/AuthContext';
|
import { useAuth } from '@/context/AuthContext';
|
||||||
import { useConceptNavigation } from '@/context/NavigationContext';
|
import { useConceptNavigation } from '@/context/NavigationContext';
|
||||||
|
import { HelpTopic } from '@/models/miscellaneous';
|
||||||
import { IUserSignupData } from '@/models/user';
|
import { IUserSignupData } from '@/models/user';
|
||||||
import { globals, patterns } from '@/utils/constants';
|
import { globals, patterns } from '@/utils/constants';
|
||||||
|
|
||||||
|
@ -54,8 +55,12 @@ function RegisterPage() {
|
||||||
const [lastName, setLastName] = useState('');
|
const [lastName, setLastName] = useState('');
|
||||||
|
|
||||||
const [acceptPrivacy, setAcceptPrivacy] = useState(false);
|
const [acceptPrivacy, setAcceptPrivacy] = useState(false);
|
||||||
|
const [acceptRules, setAcceptRules] = useState(false);
|
||||||
|
|
||||||
const isValid = useMemo(() => acceptPrivacy && !!email && !!username, [acceptPrivacy, email, username]);
|
const isValid = useMemo(
|
||||||
|
() => acceptPrivacy && acceptRules && !!email && !!username,
|
||||||
|
[acceptPrivacy, acceptRules, email, username]
|
||||||
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setError(undefined);
|
setError(undefined);
|
||||||
|
@ -180,7 +185,11 @@ function RegisterPage() {
|
||||||
|
|
||||||
<div className='flex gap-1 text-sm'>
|
<div className='flex gap-1 text-sm'>
|
||||||
<Checkbox id='accept_terms' label='Принимаю условия' value={acceptPrivacy} setValue={setAcceptPrivacy} />
|
<Checkbox id='accept_terms' label='Принимаю условия' value={acceptPrivacy} setValue={setAcceptPrivacy} />
|
||||||
<TextURL text='обработки персональных данных...' href={'/manuals?topic=privacy'} />
|
<TextURL text='обработки персональных данных...' href={urls.help_topic(HelpTopic.PRIVACY)} />
|
||||||
|
</div>
|
||||||
|
<div className='flex gap-1 text-sm'>
|
||||||
|
<Checkbox id='accept_rules' label='Принимаю ' value={acceptRules} setValue={setAcceptRules} />
|
||||||
|
<TextURL text='правила поведения на Портале...' href={urls.help_topic(HelpTopic.RULES)} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className='flex justify-around my-3'>
|
<div className='flex justify-around my-3'>
|
||||||
|
|
|
@ -352,6 +352,11 @@ export function labelHelpTopic(topic: HelpTopic): string {
|
||||||
switch (topic) {
|
switch (topic) {
|
||||||
case HelpTopic.MAIN: return 'Портал';
|
case HelpTopic.MAIN: return 'Портал';
|
||||||
|
|
||||||
|
case HelpTopic.DOCS: return 'Документы';
|
||||||
|
case HelpTopic.RULES: return 'Правила';
|
||||||
|
case HelpTopic.PRIVACY: return 'Обработка данных';
|
||||||
|
case HelpTopic.API: return 'REST API';
|
||||||
|
|
||||||
case HelpTopic.INTERFACE: return 'Интерфейс';
|
case HelpTopic.INTERFACE: return 'Интерфейс';
|
||||||
case HelpTopic.UI_LIBRARY: return 'Библиотека';
|
case HelpTopic.UI_LIBRARY: return 'Библиотека';
|
||||||
case HelpTopic.UI_RS_MENU: return 'Меню схемы';
|
case HelpTopic.UI_RS_MENU: return 'Меню схемы';
|
||||||
|
@ -377,10 +382,9 @@ export function labelHelpTopic(topic: HelpTopic): string {
|
||||||
case HelpTopic.RSL_TEMPLATES: return 'Шаблоны выражений';
|
case HelpTopic.RSL_TEMPLATES: return 'Шаблоны выражений';
|
||||||
|
|
||||||
case HelpTopic.TERM_CONTROL: return 'Терминологизация';
|
case HelpTopic.TERM_CONTROL: return 'Терминологизация';
|
||||||
|
case HelpTopic.ACCESS: return 'Доступы';
|
||||||
case HelpTopic.VERSIONS: return 'Версионирование';
|
case HelpTopic.VERSIONS: return 'Версионирование';
|
||||||
case HelpTopic.EXTEOR: return 'Экстеор';
|
case HelpTopic.EXTEOR: return 'Экстеор';
|
||||||
case HelpTopic.API: return 'REST API';
|
|
||||||
case HelpTopic.PRIVACY: return 'Конфиденциальность';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -392,6 +396,11 @@ export function describeHelpTopic(topic: HelpTopic): string {
|
||||||
switch (topic) {
|
switch (topic) {
|
||||||
case HelpTopic.MAIN: return 'общая справка по порталу';
|
case HelpTopic.MAIN: return 'общая справка по порталу';
|
||||||
|
|
||||||
|
case HelpTopic.DOCS: return 'нормативные и технические документы';
|
||||||
|
case HelpTopic.RULES: return 'правила пользования Порталом';
|
||||||
|
case HelpTopic.PRIVACY: return 'политика обработки персональных данных';
|
||||||
|
case HelpTopic.API: return 'интерфейс для разработчиков';
|
||||||
|
|
||||||
case HelpTopic.INTERFACE: return 'описание интерфейса пользователя';
|
case HelpTopic.INTERFACE: return 'описание интерфейса пользователя';
|
||||||
case HelpTopic.UI_LIBRARY: return 'интерфейс Библиотеки схем';
|
case HelpTopic.UI_LIBRARY: return 'интерфейс Библиотеки схем';
|
||||||
case HelpTopic.UI_RS_MENU: return 'меню редактирования схемы';
|
case HelpTopic.UI_RS_MENU: return 'меню редактирования схемы';
|
||||||
|
@ -417,10 +426,9 @@ export function describeHelpTopic(topic: HelpTopic): string {
|
||||||
case HelpTopic.RSL_TEMPLATES: return 'работа с шаблонными выражениями';
|
case HelpTopic.RSL_TEMPLATES: return 'работа с шаблонными выражениями';
|
||||||
|
|
||||||
case HelpTopic.TERM_CONTROL: return 'справка по контролю терминов и текстовым отсылкам';
|
case HelpTopic.TERM_CONTROL: return 'справка по контролю терминов и текстовым отсылкам';
|
||||||
|
case HelpTopic.ACCESS: return 'организация доступов к схемам';
|
||||||
case HelpTopic.VERSIONS: return 'справка по управлению версиями схем';
|
case HelpTopic.VERSIONS: return 'справка по управлению версиями схем';
|
||||||
case HelpTopic.EXTEOR: return 'справка по программе для экспликации "Экстеор" для Windows';
|
case HelpTopic.EXTEOR: return 'справка по программе для экспликации "Экстеор" для Windows';
|
||||||
case HelpTopic.API: return 'интерфейс для разработчиков';
|
|
||||||
case HelpTopic.PRIVACY: return 'политика обработки персональных данных';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user