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
14728259ad
commit
a948099f09
|
@ -1,8 +1,10 @@
|
||||||
import { HelpTopic } from '@/models/miscellaneous';
|
import { HelpTopic } from '@/models/miscellaneous';
|
||||||
|
|
||||||
import HelpAPI from '../man/HelpAPI';
|
import HelpAPI from '../man/HelpAPI';
|
||||||
import HelpConstituenta from '../man/HelpConstituenta';
|
|
||||||
import HelpCstAttributes from '../man/HelpCstAttributes';
|
import HelpCstAttributes from '../man/HelpCstAttributes';
|
||||||
|
import HelpCstClass from '../man/HelpCstClass';
|
||||||
|
import HelpCstEditor from '../man/HelpCstEditor';
|
||||||
|
import HelpCstStatus from '../man/HelpCstStatus';
|
||||||
import HelpExteor from '../man/HelpExteor';
|
import HelpExteor from '../man/HelpExteor';
|
||||||
import HelpLibrary from '../man/HelpLibrary';
|
import HelpLibrary from '../man/HelpLibrary';
|
||||||
import HelpMain from '../man/HelpMain';
|
import HelpMain from '../man/HelpMain';
|
||||||
|
@ -23,12 +25,14 @@ function InfoTopic({ topic }: InfoTopicProps) {
|
||||||
if (topic === HelpTopic.MAIN) return <HelpMain />;
|
if (topic === HelpTopic.MAIN) return <HelpMain />;
|
||||||
if (topic === HelpTopic.LIBRARY) return <HelpLibrary />;
|
if (topic === HelpTopic.LIBRARY) return <HelpLibrary />;
|
||||||
if (topic === HelpTopic.RSFORM) return <HelpRSFormMeta />;
|
if (topic === HelpTopic.RSFORM) return <HelpRSFormMeta />;
|
||||||
if (topic === HelpTopic.CST_ATTRIBUTES) return <HelpCstAttributes />;
|
|
||||||
if (topic === HelpTopic.CST_LIST) return <HelpRSFormItems />;
|
if (topic === HelpTopic.CST_LIST) return <HelpRSFormItems />;
|
||||||
if (topic === HelpTopic.CST_EDITOR) return <HelpConstituenta />;
|
if (topic === HelpTopic.CST_EDITOR) return <HelpCstEditor />;
|
||||||
if (topic === HelpTopic.GRAPH_TERM) return <HelpTermGraph />;
|
if (topic === HelpTopic.GRAPH_TERM) return <HelpTermGraph />;
|
||||||
if (topic === HelpTopic.RSTEMPLATES) return <HelpRSTemplates />;
|
if (topic === HelpTopic.CST_STATUS) return <HelpCstStatus />;
|
||||||
|
if (topic === HelpTopic.CST_CLASS) return <HelpCstClass />;
|
||||||
if (topic === HelpTopic.RSLANG) return <HelpRSLang />;
|
if (topic === HelpTopic.RSLANG) return <HelpRSLang />;
|
||||||
|
if (topic === HelpTopic.CONSTITUENTA) return <HelpCstAttributes />;
|
||||||
|
if (topic === HelpTopic.RSTEMPLATES) return <HelpRSTemplates />;
|
||||||
if (topic === HelpTopic.TERM_CONTROL) return <HelpTerminologyControl />;
|
if (topic === HelpTopic.TERM_CONTROL) return <HelpTerminologyControl />;
|
||||||
if (topic === HelpTopic.VERSIONS) return <HelpVersions />;
|
if (topic === HelpTopic.VERSIONS) return <HelpVersions />;
|
||||||
if (topic === HelpTopic.EXTEOR) return <HelpExteor />;
|
if (topic === HelpTopic.EXTEOR) return <HelpExteor />;
|
||||||
|
|
7
rsconcept/frontend/src/components/man/HelpCstClass.tsx
Normal file
7
rsconcept/frontend/src/components/man/HelpCstClass.tsx
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
import InfoCstClass from '@/components/info/InfoCstClass';
|
||||||
|
|
||||||
|
function HelpCstClass() {
|
||||||
|
return <InfoCstClass header='Классы конституент' />;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default HelpCstClass;
|
|
@ -1,10 +1,8 @@
|
||||||
import InfoCstStatus from '@/components/info/InfoCstStatus';
|
|
||||||
import Divider from '@/components/ui/Divider';
|
|
||||||
import { useConceptOptions } from '@/context/OptionsContext';
|
import { useConceptOptions } from '@/context/OptionsContext';
|
||||||
|
|
||||||
import { IconControls, IconEdit, IconList, IconSave, IconStatusOK, IconText, IconTree } from '../Icons';
|
import { IconControls, IconEdit, IconList, IconSave, IconStatusOK, IconText, IconTree } from '../Icons';
|
||||||
|
|
||||||
function HelpConstituenta() {
|
function HelpCstEditor() {
|
||||||
const { colors } = useConceptOptions();
|
const { colors } = useConceptOptions();
|
||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
return (
|
return (
|
||||||
|
@ -31,11 +29,7 @@ function HelpConstituenta() {
|
||||||
<li><span style={{backgroundColor: colors.bgSelected}}>цветом фона</span> выделена текущая конституента</li>
|
<li><span style={{backgroundColor: colors.bgSelected}}>цветом фона</span> выделена текущая конституента</li>
|
||||||
<li><span style={{backgroundColor: colors.bgGreen50}}>цветом фона</span> выделена основа текущей</li>
|
<li><span style={{backgroundColor: colors.bgGreen50}}>цветом фона</span> выделена основа текущей</li>
|
||||||
<li><span style={{backgroundColor: colors.bgOrange50}}>цветом фона</span> выделены порожденные текущей</li>
|
<li><span style={{backgroundColor: colors.bgOrange50}}>цветом фона</span> выделены порожденные текущей</li>
|
||||||
|
|
||||||
<Divider margins='my-2' />
|
|
||||||
|
|
||||||
<InfoCstStatus title='Статусы' />
|
|
||||||
</div>);
|
</div>);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default HelpConstituenta;
|
export default HelpCstEditor;
|
7
rsconcept/frontend/src/components/man/HelpCstStatus.tsx
Normal file
7
rsconcept/frontend/src/components/man/HelpCstStatus.tsx
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
import InfoCstStatus from '@/components/info/InfoCstStatus';
|
||||||
|
|
||||||
|
function HelpCstStatus() {
|
||||||
|
return <InfoCstStatus title='Статусы конституент' />;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default HelpCstStatus;
|
|
@ -9,7 +9,7 @@ function HelpMain() {
|
||||||
<div>
|
<div>
|
||||||
<h1>Портал</h1>
|
<h1>Портал</h1>
|
||||||
<p>Портал позволяет анализировать предметные области, формально записывать системы определений и синтезировать их с помощью математического <TextURL text='аппарата родов структур' href={urls.help_topic(HelpTopic.RSLANG)}/></p>
|
<p>Портал позволяет анализировать предметные области, формально записывать системы определений и синтезировать их с помощью математического <TextURL text='аппарата родов структур' href={urls.help_topic(HelpTopic.RSLANG)}/></p>
|
||||||
<p>Такие системы называются <b>Концептуальными схемами</b> и состоят из отдельных <TextURL text='Конституент' href={urls.help_topic(HelpTopic.CST_ATTRIBUTES)}/>, обладающих уникальными обозначениями и формальными определениями</p>
|
<p>Такие системы называются <b>Концептуальными схемами</b> и состоят из отдельных <TextURL text='Конституент' href={urls.help_topic(HelpTopic.CONSTITUENTA)}/>, обладающих уникальными обозначениями и формальными определениями</p>
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
<h2>Основные разделы</h2>
|
<h2>Основные разделы</h2>
|
||||||
|
|
|
@ -11,7 +11,7 @@ function HelpRSFormItems() {
|
||||||
return (
|
return (
|
||||||
<div className='dense'>
|
<div className='dense'>
|
||||||
<h1>Список конституент</h1>
|
<h1>Список конституент</h1>
|
||||||
<p><IconAlias className='inline-icon'/>Конституенты обладают уникальным <TextURL text='Именем' href={urls.help_topic(HelpTopic.CST_ATTRIBUTES)}/></p>
|
<p><IconAlias className='inline-icon'/>Конституенты обладают уникальным <TextURL text='Именем' href={urls.help_topic(HelpTopic.CONSTITUENTA)}/></p>
|
||||||
<p><IconMoveUp className='inline-icon'/><IconMoveDown className='inline-icon'/> Список поддерживает выделение и перемещение </p>
|
<p><IconMoveUp className='inline-icon'/><IconMoveDown className='inline-icon'/> Список поддерживает выделение и перемещение </p>
|
||||||
|
|
||||||
<h2>Управление списком</h2>
|
<h2>Управление списком</h2>
|
||||||
|
|
|
@ -1,33 +1,27 @@
|
||||||
import InfoCstClass from '@/components/info/InfoCstClass';
|
|
||||||
import InfoCstStatus from '@/components/info/InfoCstStatus';
|
|
||||||
import Divider from '@/components/ui/Divider';
|
import Divider from '@/components/ui/Divider';
|
||||||
|
|
||||||
|
import { IconDestroy, IconEdit, IconReset } from '../Icons';
|
||||||
|
|
||||||
function HelpTermGraph() {
|
function HelpTermGraph() {
|
||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
return (
|
return (
|
||||||
<div className='flex max-w-[80rem] min-w-[45rem]'>
|
<div className='flex'>
|
||||||
<div className='dense'>
|
<div className='dense min-w-[18rem]'>
|
||||||
<h1>Настройка графа</h1>
|
<h1>Настройка графа</h1>
|
||||||
<p>Цвет – правила покраски узлов</p>
|
<li>Цвет – правила покраски</li>
|
||||||
<p>Граф – модель расположения узлов</p>
|
<li>Граф – модель расположения</li>
|
||||||
<p>Размер – модель размера узлов</p>
|
<li>Размер – модель размера</li>
|
||||||
|
|
||||||
<Divider margins='my-2' />
|
|
||||||
|
|
||||||
<InfoCstStatus title='Статусы конституент' />
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Divider vertical margins='mx-3' />
|
<Divider vertical margins='mx-3' />
|
||||||
|
|
||||||
<div className='dense'>
|
<div className='dense min-w-[18rem]'>
|
||||||
<h1>Управление</h1>
|
<h1>Управление</h1>
|
||||||
<p>Клик на конституенту – выделение</p>
|
<li>Клик на конституенту – выделение</li>
|
||||||
<p>Двойной клик – редактирование</p>
|
<li>Ctrl + клик – выбор фокус-конституенты</li>
|
||||||
<p>Delete – удалить выбранные</p>
|
<li><IconReset className='inline-icon'/> Esc – сбросить выделение</li>
|
||||||
|
<li><IconEdit className='inline-icon'/>Двойной клик – редактирование</li>
|
||||||
<Divider margins='my-2' />
|
<li><IconDestroy className='inline-icon'/> Delete – удалить выбранные</li>
|
||||||
|
|
||||||
<InfoCstClass header='Классы конституент' />
|
|
||||||
</div>
|
</div>
|
||||||
</div>);
|
</div>);
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,7 @@ function FormCreateCst({ schema, state, partialUpdate, setValidated }: FormCreat
|
||||||
value={{ value: state.cst_type, label: labelCstType(state.cst_type) }}
|
value={{ value: state.cst_type, label: labelCstType(state.cst_type) }}
|
||||||
onChange={data => partialUpdate({ cst_type: data?.value ?? CstType.BASE })}
|
onChange={data => partialUpdate({ cst_type: data?.value ?? CstType.BASE })}
|
||||||
/>
|
/>
|
||||||
<BadgeHelp topic={HelpTopic.CST_ATTRIBUTES} offset={16} className='max-w-[40rem] max-h-[calc(100vh-2rem)]' />
|
<BadgeHelp topic={HelpTopic.CONSTITUENTA} offset={16} className='max-w-[40rem] max-h-[calc(100vh-2rem)]' />
|
||||||
<TextInput
|
<TextInput
|
||||||
id='dlg_cst_alias'
|
id='dlg_cst_alias'
|
||||||
dense
|
dense
|
||||||
|
|
|
@ -60,7 +60,7 @@ function DlgRenameCst({ hideWindow, initial, onRename }: DlgRenameCstProps) {
|
||||||
}}
|
}}
|
||||||
onChange={data => updateData({ cst_type: data?.value ?? CstType.BASE })}
|
onChange={data => updateData({ cst_type: data?.value ?? CstType.BASE })}
|
||||||
/>
|
/>
|
||||||
<BadgeHelp topic={HelpTopic.CST_ATTRIBUTES} offset={16} className='max-w-[40rem] max-h-[calc(100vh-2rem)]' />
|
<BadgeHelp topic={HelpTopic.CONSTITUENTA} offset={16} className='max-w-[40rem] max-h-[calc(100vh-2rem)]' />
|
||||||
<TextInput
|
<TextInput
|
||||||
id='dlg_cst_alias'
|
id='dlg_cst_alias'
|
||||||
dense
|
dense
|
||||||
|
|
|
@ -48,9 +48,11 @@ export enum HelpTopic {
|
||||||
CST_LIST = 'cst-list',
|
CST_LIST = 'cst-list',
|
||||||
CST_EDITOR = 'cst-editor',
|
CST_EDITOR = 'cst-editor',
|
||||||
GRAPH_TERM = 'graph-term',
|
GRAPH_TERM = 'graph-term',
|
||||||
RSTEMPLATES = 'rstemplates',
|
CST_STATUS = 'cst-status',
|
||||||
|
CST_CLASS = 'cst-class',
|
||||||
RSLANG = 'rslang',
|
RSLANG = 'rslang',
|
||||||
CST_ATTRIBUTES = 'cst-type',
|
CONSTITUENTA = 'constituenta',
|
||||||
|
RSTEMPLATES = 'rstemplates',
|
||||||
TERM_CONTROL = 'terminology-control',
|
TERM_CONTROL = 'terminology-control',
|
||||||
VERSIONS = 'versions',
|
VERSIONS = 'versions',
|
||||||
EXTEOR = 'exteor',
|
EXTEOR = 'exteor',
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
import { IconClone, IconDestroy, IconMoveDown, IconMoveUp, IconNewItem, IconReset, IconSave } from '@/components/Icons';
|
import { IconClone, IconDestroy, IconMoveDown, IconMoveUp, IconNewItem, IconReset, IconSave } from '@/components/Icons';
|
||||||
|
import BadgeHelp from '@/components/man/BadgeHelp';
|
||||||
import MiniButton from '@/components/ui/MiniButton';
|
import MiniButton from '@/components/ui/MiniButton';
|
||||||
import Overlay from '@/components/ui/Overlay';
|
import Overlay from '@/components/ui/Overlay';
|
||||||
|
import { HelpTopic } from '@/models/miscellaneous';
|
||||||
import { messages, prepareTooltip } from '@/utils/labels';
|
import { messages, prepareTooltip } from '@/utils/labels';
|
||||||
|
|
||||||
interface ConstituentaToolbarProps {
|
interface ConstituentaToolbarProps {
|
||||||
|
@ -72,6 +74,7 @@ function ConstituentaToolbar({
|
||||||
disabled={disabled || modified}
|
disabled={disabled || modified}
|
||||||
onClick={onMoveDown}
|
onClick={onMoveDown}
|
||||||
/>
|
/>
|
||||||
|
<BadgeHelp topic={HelpTopic.CST_EDITOR} offset={4} />
|
||||||
</Overlay>
|
</Overlay>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -205,7 +205,7 @@ function EditorRSExpression({
|
||||||
parseData={parser.parseData}
|
parseData={parser.parseData}
|
||||||
onAnalyze={() => handleCheckExpression()}
|
onAnalyze={() => handleCheckExpression()}
|
||||||
/>
|
/>
|
||||||
<BadgeHelp topic={HelpTopic.CST_EDITOR} offset={4} />
|
<BadgeHelp topic={HelpTopic.CST_STATUS} offset={4} />
|
||||||
</Overlay>
|
</Overlay>
|
||||||
|
|
||||||
<RSInput
|
<RSInput
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
|
import BadgeHelp from '@/components/man/BadgeHelp';
|
||||||
import { GraphLayout } from '@/components/ui/GraphUI';
|
import { GraphLayout } from '@/components/ui/GraphUI';
|
||||||
|
import Overlay from '@/components/ui/Overlay';
|
||||||
import SelectSingle from '@/components/ui/SelectSingle';
|
import SelectSingle from '@/components/ui/SelectSingle';
|
||||||
import { GraphColoring, GraphSizing } from '@/models/miscellaneous';
|
import { GraphColoring, GraphSizing, HelpTopic } from '@/models/miscellaneous';
|
||||||
import { mapLabelColoring, mapLabelLayout, mapLabelSizing } from '@/utils/labels';
|
import { mapLabelColoring, mapLabelLayout, mapLabelSizing } from '@/utils/labels';
|
||||||
import { SelectorGraphColoring, SelectorGraphLayout, SelectorGraphSizing } from '@/utils/selectors';
|
import { SelectorGraphColoring, SelectorGraphLayout, SelectorGraphSizing } from '@/utils/selectors';
|
||||||
|
|
||||||
|
@ -25,6 +27,10 @@ function GraphSelectors({ coloring, setColoring, layout, setLayout, sizing, setS
|
||||||
value={layout ? { value: layout, label: mapLabelLayout.get(layout) } : null}
|
value={layout ? { value: layout, label: mapLabelLayout.get(layout) } : null}
|
||||||
onChange={data => setLayout(data?.value ?? SelectorGraphLayout[0].value)}
|
onChange={data => setLayout(data?.value ?? SelectorGraphLayout[0].value)}
|
||||||
/>
|
/>
|
||||||
|
<Overlay position='right-[2.5rem] top-[0.3rem]'>
|
||||||
|
{coloring === 'status' ? <BadgeHelp topic={HelpTopic.CST_STATUS} className='min-w-[25rem]' /> : null}
|
||||||
|
{coloring === 'type' ? <BadgeHelp topic={HelpTopic.CST_CLASS} className='min-w-[25rem]' /> : null}
|
||||||
|
</Overlay>
|
||||||
<SelectSingle
|
<SelectSingle
|
||||||
noBorder
|
noBorder
|
||||||
placeholder='Цветовая схема'
|
placeholder='Цветовая схема'
|
||||||
|
|
|
@ -359,14 +359,19 @@ export function labelHelpTopic(topic: HelpTopic): string {
|
||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
switch (topic) {
|
switch (topic) {
|
||||||
case HelpTopic.MAIN: return 'Портал';
|
case HelpTopic.MAIN: return 'Портал';
|
||||||
|
|
||||||
case HelpTopic.LIBRARY: return 'Библиотека';
|
case HelpTopic.LIBRARY: return 'Библиотека';
|
||||||
case HelpTopic.RSFORM: return '- карточка схемы';
|
case HelpTopic.RSFORM: return '- карточка схемы';
|
||||||
case HelpTopic.CST_LIST: return '- список конституент';
|
case HelpTopic.CST_LIST: return '- список конституент';
|
||||||
case HelpTopic.CST_EDITOR: return '- редактор конституенты';
|
case HelpTopic.CST_EDITOR: return '- редактор конституенты';
|
||||||
case HelpTopic.GRAPH_TERM: return '- граф термов';
|
case HelpTopic.GRAPH_TERM: return '- граф термов';
|
||||||
case HelpTopic.RSTEMPLATES: return '- шаблоны выражений';
|
case HelpTopic.CST_STATUS: return '- статус конституенты';
|
||||||
|
case HelpTopic.CST_CLASS: return '- класс конституенты';
|
||||||
|
|
||||||
case HelpTopic.RSLANG: return 'Экспликация';
|
case HelpTopic.RSLANG: return 'Экспликация';
|
||||||
case HelpTopic.CST_ATTRIBUTES: return '- конституента';
|
case HelpTopic.CONSTITUENTA: return '- конституента';
|
||||||
|
case HelpTopic.RSTEMPLATES: return '- шаблоны выражений';
|
||||||
|
|
||||||
case HelpTopic.TERM_CONTROL: return 'Терминологизация';
|
case HelpTopic.TERM_CONTROL: return 'Терминологизация';
|
||||||
case HelpTopic.VERSIONS: return 'Версионирование';
|
case HelpTopic.VERSIONS: return 'Версионирование';
|
||||||
case HelpTopic.EXTEOR: return 'Экстеор';
|
case HelpTopic.EXTEOR: return 'Экстеор';
|
||||||
|
@ -382,18 +387,23 @@ export function describeHelpTopic(topic: HelpTopic): string {
|
||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
switch (topic) {
|
switch (topic) {
|
||||||
case HelpTopic.MAIN: return 'Общая справка по порталу';
|
case HelpTopic.MAIN: return 'Общая справка по порталу';
|
||||||
case HelpTopic.LIBRARY: return 'Описание работы с библиотекой схем';
|
|
||||||
case HelpTopic.RSFORM: return 'Описание работы с описанием схемы';
|
case HelpTopic.LIBRARY: return 'Интерфейс Библиотеки схем';
|
||||||
case HelpTopic.CST_LIST: return 'Описание работы со списком конституент';
|
case HelpTopic.RSFORM: return 'Интерфейс Карточки схемы';
|
||||||
case HelpTopic.CST_EDITOR: return 'Описание редактирования конституенты';
|
case HelpTopic.CST_LIST: return 'Интерфейс Списка конституент';
|
||||||
case HelpTopic.GRAPH_TERM: return 'Описание работы с графом термов схемы';
|
case HelpTopic.CST_EDITOR: return 'Интерфейс редактирования конституенты';
|
||||||
case HelpTopic.RSTEMPLATES: return 'Описание работы с Банком выражений>';
|
case HelpTopic.GRAPH_TERM: return 'Интерфейс графа термов';
|
||||||
|
case HelpTopic.CST_STATUS: return 'Нотация отображения статуса конституенты';
|
||||||
|
case HelpTopic.CST_CLASS: return 'Нотация отображения класса конституенты';
|
||||||
|
|
||||||
case HelpTopic.RSLANG: return 'Справка по языку родов структур и экспликации';
|
case HelpTopic.RSLANG: return 'Справка по языку родов структур и экспликации';
|
||||||
case HelpTopic.CST_ATTRIBUTES: return 'Описание типов и свойств конституент';
|
case HelpTopic.CONSTITUENTA: return 'Понятия конституенты и ее атрибутов';
|
||||||
|
case HelpTopic.RSTEMPLATES: return 'Работа с шаблонными выражениями';
|
||||||
|
|
||||||
case HelpTopic.TERM_CONTROL: return 'Справка по контролю терминов и текстовым отсылкам';
|
case HelpTopic.TERM_CONTROL: 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.API: return 'Интерфейс для разработчиков';
|
||||||
case HelpTopic.PRIVACY: return 'Политика обработки персональных данных';
|
case HelpTopic.PRIVACY: return 'Политика обработки персональных данных';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user