diff --git a/rsconcept/backend/apps/oss/views/oss.py b/rsconcept/backend/apps/oss/views/oss.py index e436ec9b..0a07471b 100644 --- a/rsconcept/backend/apps/oss/views/oss.py +++ b/rsconcept/backend/apps/oss/views/oss.py @@ -253,7 +253,7 @@ class OssViewSet(viewsets.GenericViewSet, generics.ListAPIView, generics.Retriev if operation.result is not None: can_edit = permissions.can_edit_item(request.user, operation.result) - if can_edit: + if can_edit or operation.operation_type == m.OperationType.SYNTHESIS: operation.result.alias = operation.alias operation.result.title = operation.title operation.result.comment = operation.comment diff --git a/rsconcept/frontend/public/db_schema.svg b/rsconcept/frontend/public/db_schema.svg index 5aae97d8..c3b056be 100644 --- a/rsconcept/frontend/public/db_schema.svg +++ b/rsconcept/frontend/public/db_schema.svg @@ -1,8 +1,8 @@ - + --> + model_graph - + cluster_django_contrib_auth @@ -32,12 +32,12 @@ cluster_django_contrib_sessions - -           -           -django.contrib.sessions -           -           + +           +           +django.contrib.sessions +           +           cluster_django_rest_passwordreset @@ -50,30 +50,30 @@ cluster_apps_library - -           -           -apps.library -           -           + +           +           +apps.library +           +           cluster_apps_rsform - -           -           -apps.rsform -           -           + +           +           +apps.rsform +           +           cluster_apps_oss - -           -           -apps.oss -           -           + +           +           +apps.oss +           +           @@ -453,61 +453,61 @@ django_contrib_sessions_base_session_AbstractBaseSession - - -       -      AbstractBaseSession       -       -expire_date -       -       -DateTimeField -       -       -session_data -       -       -TextField -       - + + +       +      AbstractBaseSession       +       +expire_date +       +       +DateTimeField +       +       +session_data +       +       +TextField +       + django_contrib_sessions_models_Session - - -       -      Session -< -AbstractBaseSession ->       -       -session_key -       -       -CharField -       -       -expire_date -       -       -DateTimeField -       -       -session_data -       -       -TextField -       - + + +       +      Session +< +AbstractBaseSession +>       +       +session_key +       +       +CharField +       +       +expire_date +       +       +DateTimeField +       +       +session_data +       +       +TextField +       + django_contrib_sessions_models_Session->django_contrib_sessions_base_session_AbstractBaseSession - - - abstract -inheritance + + + abstract +inheritance @@ -564,41 +564,41 @@ apps_library_models_Editor_Editor - - -       -      Editor       -       -id -       -       -BigAutoField -       + + +       +      Editor             -editor -       -       -ForeignKey (id) -       +id +       +       +BigAutoField +             -item -       +editor +             ForeignKey (id)       -       -time_create -       -       -DateTimeField -       - +       +item +       +       +ForeignKey (id) +       +       +time_create +       +       +DateTimeField +       + apps_library_models_Editor_Editor->django_contrib_auth_models_User - - + + editor (editor) @@ -685,102 +685,102 @@ apps_library_models_Editor_Editor->apps_library_models_LibraryItem_LibraryItem - - - item (editor) + + + item (editor) apps_library_models_Subscription_Subscription - - -       -      Subscription       -       -id -       -       -BigAutoField -       -       -item -       -       -ForeignKey (id) -       -       -user -       + + +       +      Subscription       +       +id +       +       +BigAutoField +       +       +item +             ForeignKey (id)       - +       +user +       +       +ForeignKey (id) +       + apps_library_models_Subscription_Subscription->django_contrib_auth_models_User - - - user (subscription) + + + user (subscription) apps_library_models_Subscription_Subscription->apps_library_models_LibraryItem_LibraryItem - - - item (subscription) + + + item (subscription) apps_library_models_Version_Version - - -       -      Version       -       -id -       -       -BigAutoField -       + + +       +      Version             -item -       -       -ForeignKey (id) -       +id +       +       +BigAutoField +             -data -       -       -JSONField -       +item +       +       +ForeignKey (id) +             -description -       +data +             -TextField -       -       -time_create -       +JSONField +       +       +description +             -DateTimeField -       -       -version -       +TextField +       +       +time_create +             -CharField -       - +DateTimeField +       +       +version +       +       +CharField +       + apps_library_models_Version_Version->apps_library_models_LibraryItem_LibraryItem - - - item (version) + + + item (version) @@ -792,343 +792,331 @@ apps_library_models_LibraryTemplate_LibraryTemplate - - -       -      LibraryTemplate       -       -id -       -       -BigAutoField -       -       -lib_source -       -       -ForeignKey (id) -       - + + +       +      LibraryTemplate       +       +id +       +       +BigAutoField +       +       +lib_source +       +       +ForeignKey (id) +       + apps_library_models_LibraryTemplate_LibraryTemplate->apps_library_models_LibraryItem_LibraryItem - - - lib_source (librarytemplate) + + + lib_source (librarytemplate) apps_rsform_models_Constituenta_Constituenta - - -       -      Constituenta       -       -id -       -       -BigAutoField -       -       -schema -       -       -ForeignKey (id) -       -       -alias -       -       -CharField -       -       -convention -       -       -TextField -       -       -cst_type -       -       -CharField -       -       -definition_formal -       -       -TextField -       -       -definition_raw -       -       -TextField -       -       -definition_resolved -       -       -TextField -       -       -order -       -       -PositiveIntegerField -       -       -term_forms -       -       -JSONField -       -       -term_raw -       -       -TextField -       -       -term_resolved -       -       -TextField -       - + + +       +      Constituenta       +       +id +       +       +BigAutoField +       +       +schema +       +       +ForeignKey (id) +       +       +alias +       +       +CharField +       +       +convention +       +       +TextField +       +       +cst_type +       +       +CharField +       +       +definition_formal +       +       +TextField +       +       +definition_raw +       +       +TextField +       +       +definition_resolved +       +       +TextField +       +       +order +       +       +PositiveIntegerField +       +       +term_forms +       +       +JSONField +       +       +term_raw +       +       +TextField +       +       +term_resolved +       +       +TextField +       + apps_rsform_models_Constituenta_Constituenta->apps_library_models_LibraryItem_LibraryItem - - - schema (constituenta) + + + schema (constituenta) apps_oss_models_Argument_Argument - - -       -      Argument       -       -id -       -       -BigAutoField -       -       -argument -       -       -ForeignKey (id) -       -       -operation -       -       -ForeignKey (id) -       - + + +       +      Argument       +       +id +       +       +BigAutoField +       +       +argument +       +       +ForeignKey (id) +       +       +operation +       +       +ForeignKey (id) +       + - + apps_oss_models_Operation_Operation - - -       -      Operation       -       -id -       -       -BigAutoField -       -       -oss -       -       -ForeignKey (id) -       -       -result -       -       -ForeignKey (id) -       -       -alias -       -       -CharField -       -       -comment -       -       -TextField -       -       -operation_type -       -       -CharField -       -       -position_x -       -       -FloatField -       -       -position_y -       -       -FloatField -       -       -sync_text -       -       -BooleanField -       -       -title -       -       -TextField -       - + + +       +      Operation       +       +id +       +       +BigAutoField +       +       +oss +       +       +ForeignKey (id) +       +       +result +       +       +ForeignKey (id) +       +       +alias +       +       +CharField +       +       +comment +       +       +TextField +       +       +operation_type +       +       +CharField +       +       +position_x +       +       +FloatField +       +       +position_y +       +       +FloatField +       +       +title +       +       +TextField +       + apps_oss_models_Argument_Argument->apps_oss_models_Operation_Operation - - - operation (arguments) + + + operation (arguments) apps_oss_models_Argument_Argument->apps_oss_models_Operation_Operation - - - argument (descendants) + + + argument (descendants) apps_oss_models_Inheritance_Inheritance - - -       -      Inheritance       -       -id -       -       -BigAutoField -       -       -child -       -       -ForeignKey (id) -       -       -parent -       -       -ForeignKey (id) -       - + + +       +      Inheritance       +       +id +       +       +BigAutoField +       +       +child +       +       +ForeignKey (id) +       +       +parent +       +       +ForeignKey (id) +       + apps_oss_models_Inheritance_Inheritance->apps_rsform_models_Constituenta_Constituenta - - - parent (as_parent) + + + parent (as_parent) apps_oss_models_Inheritance_Inheritance->apps_rsform_models_Constituenta_Constituenta - - - child (as_child) + + + child (as_child) + + + +apps_oss_models_Substitution_Substitution + + +       +      Substitution       +       +id +       +       +BigAutoField +       +       +operation +       +       +ForeignKey (id) +       +       +original +       +       +ForeignKey (id) +       +       +substitution +       +       +ForeignKey (id) +       + + + + +apps_oss_models_Substitution_Substitution->apps_rsform_models_Constituenta_Constituenta + + + original (as_original) + + + +apps_oss_models_Substitution_Substitution->apps_rsform_models_Constituenta_Constituenta + + + substitution (as_substitute) + + + +apps_oss_models_Substitution_Substitution->apps_oss_models_Operation_Operation + + + operation (substitution) - + apps_oss_models_Operation_Operation->apps_library_models_LibraryItem_LibraryItem - - + + oss (items) - -apps_oss_models_Operation_Operation->apps_library_models_LibraryItem_LibraryItem - - - result (producer) - - - -apps_oss_models_Substitution_Substitution - - -       -      Substitution       -       -id -       -       -BigAutoField -       -       -operation -       -       -ForeignKey (id) -       -       -original -       -       -ForeignKey (id) -       -       -substitution -       -       -ForeignKey (id) -       -       -transfer_term -       -       -BooleanField -       - - - - -apps_oss_models_Substitution_Substitution->apps_rsform_models_Constituenta_Constituenta - - - original (as_original) - - -apps_oss_models_Substitution_Substitution->apps_rsform_models_Constituenta_Constituenta - - - substitution (as_substitute) - - - -apps_oss_models_Substitution_Substitution->apps_oss_models_Operation_Operation - - - operation (substitution) +apps_oss_models_Operation_Operation->apps_library_models_LibraryItem_LibraryItem + + + result (producer) \ No newline at end of file diff --git a/rsconcept/frontend/src/components/Icons.tsx b/rsconcept/frontend/src/components/Icons.tsx index c9a507d1..f35f6252 100644 --- a/rsconcept/frontend/src/components/Icons.tsx +++ b/rsconcept/frontend/src/components/Icons.tsx @@ -63,6 +63,8 @@ export { IoLibrary as IconLibrary2 } from 'react-icons/io5'; export { BiDiamond as IconTemplates } from 'react-icons/bi'; export { GiHoneycomb as IconOSS } from 'react-icons/gi'; export { LuBaby as IconChild } from 'react-icons/lu'; +export { RiParentLine as IconParent } from 'react-icons/ri'; +export { TbOld as IconPredecessor } from 'react-icons/tb'; export { RiHexagonLine as IconRSForm } from 'react-icons/ri'; export { LuArchive as IconArchive } from 'react-icons/lu'; export { LuDatabase as IconDatabase } from 'react-icons/lu'; diff --git a/rsconcept/frontend/src/components/select/PickSubstitutions.tsx b/rsconcept/frontend/src/components/select/PickSubstitutions.tsx index 46fa9a2d..3fc50fe4 100644 --- a/rsconcept/frontend/src/components/select/PickSubstitutions.tsx +++ b/rsconcept/frontend/src/components/select/PickSubstitutions.tsx @@ -110,6 +110,12 @@ function PickSubstitutions({ toast.error(errors.reuseOriginal); return; } + if (leftArgument === rightArgument) { + if ((deleteRight && rightCst?.is_inherited) || (!deleteRight && leftCst?.is_inherited)) { + toast.error(errors.substituteInherited); + return; + } + } setSubstitutions(prev => [...prev, newSubstitution]); setLeftCst(undefined); setRightCst(undefined); diff --git a/rsconcept/frontend/src/components/select/SelectConstituenta.tsx b/rsconcept/frontend/src/components/select/SelectConstituenta.tsx index a1bd6631..9d7f99f0 100644 --- a/rsconcept/frontend/src/components/select/SelectConstituenta.tsx +++ b/rsconcept/frontend/src/components/select/SelectConstituenta.tsx @@ -32,7 +32,7 @@ function SelectConstituenta({ return ( items?.map(cst => ({ value: cst.id, - label: `${cst.alias}: ${describeConstituenta(cst)}` + label: `${cst.alias}${cst.is_inherited ? '*' : ''}: ${describeConstituenta(cst)}` })) ?? [] ); }, [items]); diff --git a/rsconcept/frontend/src/pages/ManualsPage/items/HelpCstAttributes.tsx b/rsconcept/frontend/src/pages/ManualsPage/items/HelpCstAttributes.tsx index a5ce1b41..34fbc591 100644 --- a/rsconcept/frontend/src/pages/ManualsPage/items/HelpCstAttributes.tsx +++ b/rsconcept/frontend/src/pages/ManualsPage/items/HelpCstAttributes.tsx @@ -1,6 +1,6 @@ import { HelpTopic } from '@/models/miscellaneous'; -import LinkTopic from '../../../components/ui/LinkTopic'; +import LinkTopic from '@/components/ui/LinkTopic'; function HelpCstAttributes() { return ( diff --git a/rsconcept/frontend/src/pages/ManualsPage/items/HelpCstEditor.tsx b/rsconcept/frontend/src/pages/ManualsPage/items/HelpCstEditor.tsx index 3b066e7e..a2a45cbb 100644 --- a/rsconcept/frontend/src/pages/ManualsPage/items/HelpCstEditor.tsx +++ b/rsconcept/frontend/src/pages/ManualsPage/items/HelpCstEditor.tsx @@ -74,7 +74,6 @@ function HelpCstEditor() { Alt + вверх/вниз – перемещение
  • фильтрация в верхней части
  • -
  • при наведении на имя конституенты отображаются атрибуты
  • цветом фона выделена текущая конституента
  • diff --git a/rsconcept/frontend/src/pages/ManualsPage/items/HelpPortal.tsx b/rsconcept/frontend/src/pages/ManualsPage/items/HelpPortal.tsx index d98d3e08..03541561 100644 --- a/rsconcept/frontend/src/pages/ManualsPage/items/HelpPortal.tsx +++ b/rsconcept/frontend/src/pages/ManualsPage/items/HelpPortal.tsx @@ -1,10 +1,10 @@ import { urls } from '@/app/urls'; import { IconLibrary2, IconManuals, IconUser2 } from '@/components/Icons'; +import LinkTopic from '@/components/ui/LinkTopic'; import TextURL from '@/components/ui/TextURL'; import { HelpTopic } from '@/models/miscellaneous'; import { external_urls, prefixes } from '@/utils/constants'; -import LinkTopic from '../../../components/ui/LinkTopic'; import TopicItem from '../TopicItem'; function HelpPortal() { diff --git a/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSFormCard.tsx b/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSFormCard.tsx index b47c5c4f..e85e99c6 100644 --- a/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSFormCard.tsx +++ b/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSFormCard.tsx @@ -1,5 +1,3 @@ -import { HelpTopic } from '@/models/miscellaneous'; - import { IconClone, IconDestroy, @@ -10,8 +8,9 @@ import { IconOwner, IconPublic, IconSave -} from '../../../components/Icons'; -import LinkTopic from '../../../components/ui/LinkTopic'; +} from '@/components/Icons'; +import LinkTopic from '@/components/ui/LinkTopic'; +import { HelpTopic } from '@/models/miscellaneous'; function HelpRSFormCard() { return ( diff --git a/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSFormItems.tsx b/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSFormItems.tsx index ee77a8c8..75a1f5a1 100644 --- a/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSFormItems.tsx +++ b/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSFormItems.tsx @@ -1,7 +1,3 @@ -import InfoCstStatus from '@/components/info/InfoCstStatus'; -import Divider from '@/components/ui/Divider'; -import { HelpTopic } from '@/models/miscellaneous'; - import { IconAlias, IconClone, @@ -11,17 +7,24 @@ import { IconNewItem, IconOpenList, IconReset -} from '../../../components/Icons'; -import LinkTopic from '../../../components/ui/LinkTopic'; +} from '@/components/Icons'; +import InfoCstStatus from '@/components/info/InfoCstStatus'; +import Divider from '@/components/ui/Divider'; +import LinkTopic from '@/components/ui/LinkTopic'; +import { HelpTopic } from '@/models/miscellaneous'; function HelpRSFormItems() { return (

    Список конституент

    -

    +

  • Конституенты обладают уникальным -

    +
  • +
  • при наведении на имя отображаются атрибуты
  • +
  • + пунктиром отображаются конституенты +
  • Управление списком

  • diff --git a/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSLangCorrect.tsx b/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSLangCorrect.tsx index b20a09f4..a7e370ca 100644 --- a/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSLangCorrect.tsx +++ b/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSLangCorrect.tsx @@ -1,7 +1,6 @@ +import LinkTopic from '@/components/ui/LinkTopic'; import { HelpTopic } from '@/models/miscellaneous'; -import LinkTopic from '../../../components/ui/LinkTopic'; - function HelpRSLangCorrect() { return (
    diff --git a/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSLangInterpret.tsx b/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSLangInterpret.tsx index 478262f1..b8542bb6 100644 --- a/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSLangInterpret.tsx +++ b/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSLangInterpret.tsx @@ -1,7 +1,6 @@ +import LinkTopic from '@/components/ui/LinkTopic'; import { HelpTopic } from '@/models/miscellaneous'; -import LinkTopic from '../../../components/ui/LinkTopic'; - function HelpRSLangInterpret() { return (
    diff --git a/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSLangOperations.tsx b/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSLangOperations.tsx index f8f42b72..f02b5193 100644 --- a/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSLangOperations.tsx +++ b/rsconcept/frontend/src/pages/ManualsPage/items/HelpRSLangOperations.tsx @@ -1,5 +1,3 @@ -import { HelpTopic } from '@/models/miscellaneous'; - import { IconGenerateNames, IconGenerateStructure, @@ -7,8 +5,9 @@ import { IconReplace, IconSortList, IconTemplates -} from '../../../components/Icons'; -import LinkTopic from '../../../components/ui/LinkTopic'; +} from '@/components/Icons'; +import LinkTopic from '@/components/ui/LinkTopic'; +import { HelpTopic } from '@/models/miscellaneous'; function HelpRSLangOperations() { return ( diff --git a/rsconcept/frontend/src/pages/ManualsPage/items/HelpTermGraph.tsx b/rsconcept/frontend/src/pages/ManualsPage/items/HelpTermGraph.tsx index 614f1e14..1315f0d4 100644 --- a/rsconcept/frontend/src/pages/ManualsPage/items/HelpTermGraph.tsx +++ b/rsconcept/frontend/src/pages/ManualsPage/items/HelpTermGraph.tsx @@ -1,8 +1,3 @@ -import Divider from '@/components/ui/Divider'; -import LinkTopic from '@/components/ui/LinkTopic'; -import { useConceptOptions } from '@/context/ConceptOptionsContext'; -import { HelpTopic } from '@/models/miscellaneous'; - import { IconClustering, IconDestroy, @@ -20,7 +15,11 @@ import { IconReset, IconRotate3D, IconText -} from '../../../components/Icons'; +} from '@/components/Icons'; +import Divider from '@/components/ui/Divider'; +import LinkTopic from '@/components/ui/LinkTopic'; +import { useConceptOptions } from '@/context/ConceptOptionsContext'; +import { HelpTopic } from '@/models/miscellaneous'; function HelpTermGraph() { const { colors } = useConceptOptions(); @@ -80,6 +79,9 @@ function HelpTermGraph() {
  • Сохранить в формат PNG
  • +
  • + * в ОСС +
  • diff --git a/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/EditorConstituenta.tsx b/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/EditorConstituenta.tsx index 45e83f7b..097db066 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/EditorConstituenta.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/EditorConstituenta.tsx @@ -89,7 +89,7 @@ function EditorConstituenta({ activeCst, isModified, setIsModified, onOpenEdit } onMoveDown={controller.moveDown} onSubmit={initiateSubmit} onReset={() => setToggleReset(prev => !prev)} - onDelete={controller.deleteCst} + onDelete={controller.promptDeleteCst} onClone={controller.cloneCst} onCreate={() => controller.createCst(activeCst?.cst_type, false)} onToggleList={() => setShowList(prev => !prev)} diff --git a/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/FormConstituenta.tsx b/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/FormConstituenta.tsx index 5494c167..b63fbb0c 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/FormConstituenta.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/FormConstituenta.tsx @@ -5,7 +5,7 @@ import { AnimatePresence } from 'framer-motion'; import { useEffect, useLayoutEffect, useMemo, useState } from 'react'; import { toast } from 'react-toastify'; -import { IconChild, IconSave } from '@/components/Icons'; +import { IconChild, IconParent, IconSave } from '@/components/Icons'; import RefsInput from '@/components/RefsInput'; import MiniButton from '@/components/ui/MiniButton'; import Overlay from '@/components/ui/Overlay'; @@ -241,15 +241,22 @@ function FormConstituenta({ disabled={disabled || !isModified} icon={} /> - {state?.is_inherited ? ( - + + {state?.is_inherited_parent ? ( } disabled titleHtml='Внимание!
    Конституента имеет потомков
    в операционной схеме синтеза' /> -
    - ) : null} + ) : null} + {state?.is_inherited ? ( + } + disabled + titleHtml='Внимание!
    Конституента является наследником
    ' + /> + ) : null} +
    ) : null} diff --git a/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/ToolbarConstituenta.tsx b/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/ToolbarConstituenta.tsx index b8e506e8..2192569a 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/ToolbarConstituenta.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/ToolbarConstituenta.tsx @@ -1,3 +1,5 @@ +'use client'; + import { IconClone, IconDestroy, @@ -16,6 +18,8 @@ import { HelpTopic } from '@/models/miscellaneous'; import { PARAMETER } from '@/utils/constants'; import { prepareTooltip, tooltips } from '@/utils/labels'; +import { useRSEdit } from '../RSEditContext'; + interface ToolbarConstituentaProps { disabled: boolean; modified: boolean; @@ -46,6 +50,8 @@ function ToolbarConstituenta({ onCreate, onToggleList }: ToolbarConstituentaProps) { + const controller = useRSEdit(); + return ( } /> diff --git a/rsconcept/frontend/src/pages/RSFormPage/EditorRSFormCard/EditorLibraryItem.tsx b/rsconcept/frontend/src/pages/RSFormPage/EditorRSFormCard/EditorLibraryItem.tsx index 97d26b97..eb3b52c7 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/EditorRSFormCard/EditorLibraryItem.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/EditorRSFormCard/EditorLibraryItem.tsx @@ -15,7 +15,7 @@ import { UserID, UserLevel } from '@/models/user'; import { prefixes } from '@/utils/constants'; import { prompts } from '@/utils/labels'; -import LabeledValue from '../../../components/ui/LabeledValue'; +import LabeledValue from '@/components/ui/LabeledValue'; interface EditorLibraryItemProps { item?: ILibraryItemData; diff --git a/rsconcept/frontend/src/pages/RSFormPage/EditorRSFormCard/FormRSForm.tsx b/rsconcept/frontend/src/pages/RSFormPage/EditorRSFormCard/FormRSForm.tsx index efb7b10a..0cde98ef 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/EditorRSFormCard/FormRSForm.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/EditorRSFormCard/FormRSForm.tsx @@ -105,6 +105,7 @@ function FormRSForm({ id, isModified, setIsModified }: FormRSFormProps) { onClick={() => ossMenu.toggle()} /> +