diff --git a/rsconcept/frontend/src/components/select/SelectGraphFilter.tsx b/rsconcept/frontend/src/components/select/SelectGraphFilter.tsx index 0d0bdd8e..d5eacd17 100644 --- a/rsconcept/frontend/src/components/select/SelectGraphFilter.tsx +++ b/rsconcept/frontend/src/components/select/SelectGraphFilter.tsx @@ -36,7 +36,7 @@ function SelectGraphFilter({ value, dense, onChange }: SelectGraphFilterProps) { } diff --git a/rsconcept/frontend/src/components/select/SelectMatchMode.tsx b/rsconcept/frontend/src/components/select/SelectMatchMode.tsx index 1ad1d932..5cb87d66 100644 --- a/rsconcept/frontend/src/components/select/SelectMatchMode.tsx +++ b/rsconcept/frontend/src/components/select/SelectMatchMode.tsx @@ -35,7 +35,7 @@ function SelectMatchMode({ value, dense, onChange }: SelectMatchModeProps) {
} diff --git a/rsconcept/frontend/src/components/ui/SelectTree.tsx b/rsconcept/frontend/src/components/ui/SelectTree.tsx index bc85cff3..939a6cd2 100644 --- a/rsconcept/frontend/src/components/ui/SelectTree.tsx +++ b/rsconcept/frontend/src/components/ui/SelectTree.tsx @@ -92,7 +92,7 @@ function SelectTree({ value === item && 'clr-selected' )} data-tooltip-id={globals.tooltip} - data-tooltip-content={getDescription(item)} + data-tooltip-html={getDescription(item)} onClick={event => handleSetValue(event, item)} initial={{ ...animateSideAppear.initial }} animate={{ ...animateSideAppear.animate }} diff --git a/rsconcept/frontend/src/dialogs/DlgConstituentaTemplate/DlgConstituentaTemplate.tsx b/rsconcept/frontend/src/dialogs/DlgConstituentaTemplate/DlgConstituentaTemplate.tsx index 7921c805..6b6ded19 100644 --- a/rsconcept/frontend/src/dialogs/DlgConstituentaTemplate/DlgConstituentaTemplate.tsx +++ b/rsconcept/frontend/src/dialogs/DlgConstituentaTemplate/DlgConstituentaTemplate.tsx @@ -155,7 +155,7 @@ function DlgConstituentaTemplate({ hideWindow, schema, onCreate, insertAfter }: - + {templatePanel} diff --git a/rsconcept/frontend/src/dialogs/DlgGraphParams.tsx b/rsconcept/frontend/src/dialogs/DlgGraphParams.tsx index 280dc0ce..67da136e 100644 --- a/rsconcept/frontend/src/dialogs/DlgGraphParams.tsx +++ b/rsconcept/frontend/src/dialogs/DlgGraphParams.tsx @@ -27,7 +27,7 @@ function DlgGraphParams({ hideWindow, initial, onConfirm }: DlgGraphParamsProps) header='Настройки графа термов' onSubmit={handleSubmit} submitText='Применить' - className='flex gap-6 px-6 py-2 w-[35rem]' + className='flex gap-6 justify-between px-6 pb-3 w-[30rem]' >

Преобразования

@@ -45,13 +45,13 @@ function DlgGraphParams({ hideWindow, initial, onConfirm }: DlgGraphParamsProps) /> updateParams({ noTemplates: value })} /> updateParams({ noTransitive: value })} /> diff --git a/rsconcept/frontend/src/models/miscellaneous.ts b/rsconcept/frontend/src/models/miscellaneous.ts index 8fbf2db6..ce0f686c 100644 --- a/rsconcept/frontend/src/models/miscellaneous.ts +++ b/rsconcept/frontend/src/models/miscellaneous.ts @@ -37,11 +37,6 @@ export type FontStyle = 'controls' | 'main' | 'math' | 'math2'; export enum HelpTopic { MAIN = 'main', - DOCS = 'documentation', - RULES = 'rules', - PRIVACY = 'privacy', - API = 'api', - INTERFACE = 'user-interface', UI_LIBRARY = 'ui-library', UI_RS_MENU = 'ui-rsform-menu', @@ -54,10 +49,11 @@ export enum HelpTopic { UI_CST_CLASS = 'ui-rsform-cst-class', CONCEPTUAL = 'concept', - CC_SYSTEM = 'rslang-rsform', - CC_CONSTITUENTA = 'rslang-cst', - CC_RELATIONS = 'rslang-relations', - CC_SYNTHESIS = 'rslang-synthesis', + CC_SYSTEM = 'concept-rsform', + CC_CONSTITUENTA = 'concept-constituenta', + CC_RELATIONS = 'concept-relations', + CC_SYNTHESIS = 'concept-synthesis', + CC_OSS = 'concept-operations-schema', RSLANG = 'rslang', RSL_TYPES = 'rslang-types', @@ -69,6 +65,13 @@ export enum HelpTopic { TERM_CONTROL = 'terminology-control', ACCESS = 'access', VERSIONS = 'versions', + + INFO = 'documentation', + INFO_RULES = 'rules', + INFO_CONTRIB = 'contributors', + INFO_PRIVACY = 'privacy', + INFO_API = 'api', + EXTEOR = 'exteor' } @@ -78,11 +81,6 @@ export enum HelpTopic { export const topicParent: Map = new Map([ [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.UI_LIBRARY, HelpTopic.INTERFACE], [HelpTopic.UI_RS_MENU, HelpTopic.INTERFACE], @@ -99,6 +97,7 @@ export const topicParent: Map = new Map([ [HelpTopic.CC_CONSTITUENTA, HelpTopic.CONCEPTUAL], [HelpTopic.CC_RELATIONS, HelpTopic.CONCEPTUAL], [HelpTopic.CC_SYNTHESIS, HelpTopic.CONCEPTUAL], + [HelpTopic.CC_OSS, HelpTopic.CONCEPTUAL], [HelpTopic.RSLANG, HelpTopic.RSLANG], [HelpTopic.RSL_TYPES, HelpTopic.RSLANG], @@ -110,13 +109,20 @@ export const topicParent: Map = new Map([ [HelpTopic.TERM_CONTROL, HelpTopic.TERM_CONTROL], [HelpTopic.ACCESS, HelpTopic.ACCESS], [HelpTopic.VERSIONS, HelpTopic.VERSIONS], + + [HelpTopic.INFO, HelpTopic.INFO], + [HelpTopic.INFO_RULES, HelpTopic.INFO], + [HelpTopic.INFO_CONTRIB, HelpTopic.INFO], + [HelpTopic.INFO_PRIVACY, HelpTopic.INFO], + [HelpTopic.INFO_API, HelpTopic.INFO], + [HelpTopic.EXTEOR, HelpTopic.EXTEOR] ]); /** * Topics that can be folded. */ -export const foldableTopics = [HelpTopic.INTERFACE, HelpTopic.RSLANG, HelpTopic.CONCEPTUAL, HelpTopic.DOCS]; +export const foldableTopics = [HelpTopic.INTERFACE, HelpTopic.RSLANG, HelpTopic.CONCEPTUAL, HelpTopic.INFO]; /** * Represents {@link IConstituenta} matching mode. diff --git a/rsconcept/frontend/src/pages/ManualsPage/TopicItem.tsx b/rsconcept/frontend/src/pages/ManualsPage/TopicItem.tsx index eceb153b..c6d09c31 100644 --- a/rsconcept/frontend/src/pages/ManualsPage/TopicItem.tsx +++ b/rsconcept/frontend/src/pages/ManualsPage/TopicItem.tsx @@ -1,5 +1,5 @@ import { HelpTopic } from '@/models/miscellaneous'; -import { describeHelpTopic, labelHelpTopic } from '@/utils/labels'; +import { describeHelpTopic, labelHelpTopic, removeTags } from '@/utils/labels'; import LinkTopic from '../../components/ui/LinkTopic'; @@ -10,7 +10,7 @@ interface TopicItemProps { function TopicItem({ topic }: TopicItemProps) { return (
  • - – {describeHelpTopic(topic)} + – {removeTags(describeHelpTopic(topic))}
  • ); } diff --git a/rsconcept/frontend/src/pages/ManualsPage/TopicPage.tsx b/rsconcept/frontend/src/pages/ManualsPage/TopicPage.tsx index 54640a5f..230bdc4b 100644 --- a/rsconcept/frontend/src/pages/ManualsPage/TopicPage.tsx +++ b/rsconcept/frontend/src/pages/ManualsPage/TopicPage.tsx @@ -6,15 +6,17 @@ import HelpConcept from './items/HelpConcept'; import HelpConceptRelations from './items/HelpConceptRelations'; import HelpConceptSynthesis from './items/HelpConceptSynthesis'; import HelpConceptSystem from './items/HelpConceptSystem'; +import HelpContributors from './items/HelpContributors'; import HelpCstAttributes from './items/HelpCstAttributes'; import HelpCstClass from './items/HelpCstClass'; import HelpCstEditor from './items/HelpCstEditor'; import HelpCstStatus from './items/HelpCstStatus'; -import HelpDocs from './items/HelpDocs'; import HelpExteor from './items/HelpExteor'; import HelpFormulaTree from './items/HelpFormulaTree'; +import HelpInfo from './items/HelpInfo'; import HelpInterface from './items/HelpInterface'; import HelpLibrary from './items/HelpLibrary'; +import HelpOSS from './items/HelpOSS'; import HelpPortal from './items/HelpPortal'; import HelpPrivacy from './items/HelpPrivacy'; import HelpRSFormCard from './items/HelpRSFormCard'; @@ -38,11 +40,6 @@ interface TopicPageProps { function TopicPage({ topic }: TopicPageProps) { if (topic === HelpTopic.MAIN) return ; - if (topic === HelpTopic.DOCS) return ; - if (topic === HelpTopic.RULES) return ; - if (topic === HelpTopic.PRIVACY) return ; - if (topic === HelpTopic.API) return ; - if (topic === HelpTopic.INTERFACE) return ; if (topic === HelpTopic.UI_LIBRARY) return ; if (topic === HelpTopic.UI_RS_MENU) return ; @@ -59,6 +56,7 @@ function TopicPage({ topic }: TopicPageProps) { if (topic === HelpTopic.CC_CONSTITUENTA) return ; if (topic === HelpTopic.CC_RELATIONS) return ; if (topic === HelpTopic.CC_SYNTHESIS) return ; + if (topic === HelpTopic.CC_OSS) return ; if (topic === HelpTopic.RSLANG) return ; if (topic === HelpTopic.RSL_TYPES) return ; @@ -70,6 +68,13 @@ function TopicPage({ topic }: TopicPageProps) { if (topic === HelpTopic.TERM_CONTROL) return ; if (topic === HelpTopic.ACCESS) return ; if (topic === HelpTopic.VERSIONS) return ; + + if (topic === HelpTopic.INFO) return ; + if (topic === HelpTopic.INFO_RULES) return ; + if (topic === HelpTopic.INFO_CONTRIB) return ; + if (topic === HelpTopic.INFO_PRIVACY) return ; + if (topic === HelpTopic.INFO_API) return ; + if (topic === HelpTopic.EXTEOR) return ; return null; } diff --git a/rsconcept/frontend/src/pages/ManualsPage/items/HelpContributors.tsx b/rsconcept/frontend/src/pages/ManualsPage/items/HelpContributors.tsx new file mode 100644 index 00000000..205550b2 --- /dev/null +++ b/rsconcept/frontend/src/pages/ManualsPage/items/HelpContributors.tsx @@ -0,0 +1,10 @@ +function HelpInfo() { + return ( +
    +

    Благодарности участникам

    +

    TBD.

    +
    + ); +} + +export default HelpInfo; diff --git a/rsconcept/frontend/src/pages/ManualsPage/items/HelpDocs.tsx b/rsconcept/frontend/src/pages/ManualsPage/items/HelpInfo.tsx similarity index 66% rename from rsconcept/frontend/src/pages/ManualsPage/items/HelpDocs.tsx rename to rsconcept/frontend/src/pages/ManualsPage/items/HelpInfo.tsx index 47d68089..7efb3da9 100644 --- a/rsconcept/frontend/src/pages/ManualsPage/items/HelpDocs.tsx +++ b/rsconcept/frontend/src/pages/ManualsPage/items/HelpInfo.tsx @@ -2,15 +2,15 @@ import { HelpTopic } from '@/models/miscellaneous'; import Subtopics from '../Subtopics'; -function HelpDocs() { +function HelpInfo() { return (

    Документы

    TBD.

    - +
    ); } -export default HelpDocs; +export default HelpInfo; diff --git a/rsconcept/frontend/src/pages/ManualsPage/items/HelpOSS.tsx b/rsconcept/frontend/src/pages/ManualsPage/items/HelpOSS.tsx new file mode 100644 index 00000000..58d54ff4 --- /dev/null +++ b/rsconcept/frontend/src/pages/ManualsPage/items/HelpOSS.tsx @@ -0,0 +1,10 @@ +function HelpOSS() { + return ( +
    +

    Операционная схема синтеза

    +

    TBD.

    +
    + ); +} + +export default HelpOSS; diff --git a/rsconcept/frontend/src/pages/ManualsPage/items/HelpPortal.tsx b/rsconcept/frontend/src/pages/ManualsPage/items/HelpPortal.tsx index ccee134d..f9fb5e71 100644 --- a/rsconcept/frontend/src/pages/ManualsPage/items/HelpPortal.tsx +++ b/rsconcept/frontend/src/pages/ManualsPage/items/HelpPortal.tsx @@ -39,7 +39,7 @@ function HelpPortal() {

    Разделы Справки

    {[ - HelpTopic.DOCS, + HelpTopic.INFO, HelpTopic.INTERFACE, HelpTopic.CONCEPTUAL, HelpTopic.RSLANG, @@ -55,7 +55,7 @@ function HelpPortal() {

    Лицензирование и раскрытие информации

  • Пользователи Портала сохраняют авторские права на создаваемый ими контент
  • - Политика обработки данных доступна по + Политика обработки данных доступна по
  • Портал является проектом с открытым исходным кодом, доступным на{' '} diff --git a/rsconcept/frontend/src/pages/RSFormPage/EditorRSFormCard/VersionsToolbar.tsx b/rsconcept/frontend/src/pages/RSFormPage/EditorRSFormCard/VersionsToolbar.tsx index 9958ea4b..45683640 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/EditorRSFormCard/VersionsToolbar.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/EditorRSFormCard/VersionsToolbar.tsx @@ -13,13 +13,15 @@ function VersionsToolbar() { {controller.isMutable ? ( <> неактуальную версию' + } disabled={controller.isContentEditable} onClick={() => controller.restoreVersion()} icon={} /> на актуальную версию'} disabled={!controller.isContentEditable} onClick={controller.createVersion} icon={} diff --git a/rsconcept/frontend/src/pages/RSFormPage/RSTabsMenu.tsx b/rsconcept/frontend/src/pages/RSFormPage/RSTabsMenu.tsx index 69b5ec73..b72687b2 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/RSTabsMenu.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/RSTabsMenu.tsx @@ -209,7 +209,7 @@ function RSTabsMenu({ onDestroy }: RSTabsMenuProps) { /> } disabled={!controller.isContentEditable || controller.isProcessing} onClick={handleInlineSynthesis} @@ -217,28 +217,28 @@ function RSTabsMenu({ onDestroy }: RSTabsMenuProps) { } disabled={!controller.isContentEditable || controller.isProcessing} onClick={handleRestoreOrder} /> } disabled={!controller.isContentEditable || controller.isProcessing} onClick={handleReindex} /> } disabled={!controller.isContentEditable || !controller.canProduceStructure} onClick={handleProduceStructure} /> } onClick={handleSubstituteCst} disabled={!controller.isContentEditable || controller.isProcessing} diff --git a/rsconcept/frontend/src/pages/RegisterPage.tsx b/rsconcept/frontend/src/pages/RegisterPage.tsx index ba3f4963..adb5bfa2 100644 --- a/rsconcept/frontend/src/pages/RegisterPage.tsx +++ b/rsconcept/frontend/src/pages/RegisterPage.tsx @@ -163,11 +163,11 @@ function RegisterPage() {
    - +
    - +
    diff --git a/rsconcept/frontend/src/utils/labels.ts b/rsconcept/frontend/src/utils/labels.ts index 25f2704f..c79bb834 100644 --- a/rsconcept/frontend/src/utils/labels.ts +++ b/rsconcept/frontend/src/utils/labels.ts @@ -19,6 +19,16 @@ import { } from '@/models/rslang'; import { UserLevel } from '@/models/user'; +/** + * Remove html tags from target string. + */ +export function removeTags(target?: string): string { + if (!target) { + return ''; + } + return target.toString().replace(/(<([^>]+)>)/gi, ''); +} + /** * Generates description for {@link IConstituenta}. */ @@ -352,11 +362,6 @@ export function labelHelpTopic(topic: HelpTopic): string { switch (topic) { 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.UI_LIBRARY: return 'Библиотека'; case HelpTopic.UI_RS_MENU: return 'Меню схемы'; @@ -373,17 +378,25 @@ export function labelHelpTopic(topic: HelpTopic): string { case HelpTopic.CC_CONSTITUENTA: return 'Конституента'; case HelpTopic.CC_RELATIONS: return 'Связи понятий'; case HelpTopic.CC_SYNTHESIS: return 'Синтез схем'; + case HelpTopic.CC_OSS: return 'Операционная схема'; case HelpTopic.RSLANG: return 'Экспликация'; case HelpTopic.RSL_TYPES: return 'Типизация'; case HelpTopic.RSL_CORRECT: return 'Переносимость'; case HelpTopic.RSL_INTERPRET: return 'Интерпретируемость'; case HelpTopic.RSL_OPERATIONS: return 'Операции'; - case HelpTopic.RSL_TEMPLATES: return 'Шаблоны выражений'; + case HelpTopic.RSL_TEMPLATES: return 'Банк выражений'; case HelpTopic.TERM_CONTROL: return 'Терминологизация'; case HelpTopic.ACCESS: return 'Доступы'; case HelpTopic.VERSIONS: return 'Версионирование'; + + case HelpTopic.INFO: return 'Информация'; + case HelpTopic.INFO_RULES: return 'Правила'; + case HelpTopic.INFO_CONTRIB: return 'Участники'; + case HelpTopic.INFO_PRIVACY: return 'Обработка данных'; + case HelpTopic.INFO_API: return 'REST API'; + case HelpTopic.EXTEOR: return 'Экстеор'; } } @@ -396,39 +409,42 @@ export function describeHelpTopic(topic: HelpTopic): string { switch (topic) { 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.UI_LIBRARY: return 'интерфейс Библиотеки схем'; + case HelpTopic.UI_LIBRARY: return 'поиск и просмотр схем'; case HelpTopic.UI_RS_MENU: return 'меню редактирования схемы'; - case HelpTopic.UI_RS_CARD: return 'интерфейс Карточки схемы'; - case HelpTopic.UI_RS_LIST: return 'интерфейс Списка конституент'; - case HelpTopic.UI_RS_EDITOR: return 'интерфейс редактирования конституенты'; + case HelpTopic.UI_RS_CARD: return 'общие атрибуты схемы'; + case HelpTopic.UI_RS_LIST: return 'концептуальная схема
    в форме таблицы'; + case HelpTopic.UI_RS_EDITOR: return 'редактирование конституенты'; case HelpTopic.UI_GRAPH_TERM: return 'интерфейс графа термов'; - case HelpTopic.UI_FORMULA_TREE: return 'интерфейс дерева разбора родоструктурного выражения'; - case HelpTopic.UI_CST_STATUS: return 'нотация отображения статуса конституенты'; - case HelpTopic.UI_CST_CLASS: return 'нотация отображения класса конституенты'; + case HelpTopic.UI_FORMULA_TREE: return 'просмотр дерева разбора
    родоструктурного выражения'; + case HelpTopic.UI_CST_STATUS: return 'нотация статуса конституенты'; + case HelpTopic.UI_CST_CLASS: return 'нотация класса конституенты'; - case HelpTopic.CONCEPTUAL: return 'основы концептуализации и концептуального мышления'; - case HelpTopic.CC_SYSTEM: return 'концептуальная схема как система понятий'; + case HelpTopic.CONCEPTUAL: return 'основы концептуализации'; + case HelpTopic.CC_SYSTEM: return 'концептуальная схема
    как система понятий'; case HelpTopic.CC_CONSTITUENTA: return 'понятия конституенты и ее атрибутов'; case HelpTopic.CC_RELATIONS: return 'отношения между конституентами'; case HelpTopic.CC_SYNTHESIS: return 'операция синтеза концептуальных схем'; + case HelpTopic.CC_OSS: return 'операционная схема синтеза
    и протаскивание изменений'; - case HelpTopic.RSLANG: return 'справка по языку родов структур и экспликации'; - case HelpTopic.RSL_TYPES: return 'система типов в родоструктурной экспликации'; - case HelpTopic.RSL_CORRECT: return 'корректность и переносимость определений'; - case HelpTopic.RSL_INTERPRET: return 'интерпретация формальных определений'; - case HelpTopic.RSL_OPERATIONS: return 'операции над концептуальными схемами'; - case HelpTopic.RSL_TEMPLATES: return 'работа с шаблонными выражениями'; + case HelpTopic.RSLANG: return 'экспликация и язык родов структур'; + case HelpTopic.RSL_TYPES: return 'система типов в
    родоструктурной экспликации'; + case HelpTopic.RSL_CORRECT: return 'биективная переносимость'; + case HelpTopic.RSL_INTERPRET: return 'интерпретация определений
    и утверждений'; + case HelpTopic.RSL_OPERATIONS: 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.EXTEOR: return 'справка по программе для экспликации "Экстеор" для Windows'; + + case HelpTopic.INFO: return 'справочные, нормативные
    и технические документы'; + case HelpTopic.INFO_RULES: return 'правила пользования Порталом'; + case HelpTopic.INFO_CONTRIB: return 'признание вклада участников
    в создание Портала'; + case HelpTopic.INFO_PRIVACY: return 'политика обработки
    персональных данных'; + case HelpTopic.INFO_API: return 'интерфейс для разработчиков'; + + case HelpTopic.EXTEOR: return 'программа экспликации теорий
    "Экстеор" для Windows'; } }