Версионирование позволяет сохранить текущее состояние схемы под определенным именем (версией) и использовать ссылку на него для совместной работы. После создания версии ее содержание изменить нельзя
+
Владелец обладает правом редактирования названий и создания новых версий
+
Управление версиями происходит в Карточке схемы
+
Для получения ссылки на конкретную версию необходимо выбрать ее в карточке и воспользоваться кнопкой Поделиться
+
);
+}
+
+export default HelpVersions;
diff --git a/rsconcept/frontend/src/components/InfoTopic.tsx b/rsconcept/frontend/src/components/InfoTopic.tsx
index 8bfc360c..1e47fa51 100644
--- a/rsconcept/frontend/src/components/InfoTopic.tsx
+++ b/rsconcept/frontend/src/components/InfoTopic.tsx
@@ -12,6 +12,7 @@ import HelpRSLang from './Help/HelpRSLang';
import HelpRSTemplates from './Help/HelpRSTemplates';
import HelpTermGraph from './Help/HelpTermGraph';
import HelpTerminologyControl from './Help/HelpTerminologyControl';
+import HelpVersions from './Help/HelpVersions';
interface InfoTopicProps {
topic: HelpTopic;
@@ -27,6 +28,7 @@ function InfoTopic({ topic }: InfoTopicProps) {
if (topic === HelpTopic.RSTEMPLATES) return ;
if (topic === HelpTopic.RSLANG) return ;
if (topic === HelpTopic.TERM_CONTROL) return ;
+ if (topic === HelpTopic.VERSIONS) return ;
if (topic === HelpTopic.EXTEOR) return ;
if (topic === HelpTopic.API) return ;
if (topic === HelpTopic.PRIVACY) return ;
diff --git a/rsconcept/frontend/src/hooks/usePartialUpdate.tsx b/rsconcept/frontend/src/hooks/usePartialUpdate.ts
similarity index 100%
rename from rsconcept/frontend/src/hooks/usePartialUpdate.tsx
rename to rsconcept/frontend/src/hooks/usePartialUpdate.ts
diff --git a/rsconcept/frontend/src/models/miscellaneous.ts b/rsconcept/frontend/src/models/miscellaneous.ts
index 9f2df84e..faa09877 100644
--- a/rsconcept/frontend/src/models/miscellaneous.ts
+++ b/rsconcept/frontend/src/models/miscellaneous.ts
@@ -41,6 +41,7 @@ export enum HelpTopic {
RSTEMPLATES = 'rstemplates',
RSLANG = 'rslang',
TERM_CONTROL = 'terminology-control',
+ VERSIONS = 'versions',
EXTEOR = 'exteor',
API = 'api',
PRIVACY = 'privacy'
diff --git a/rsconcept/frontend/src/pages/RSFormPage/EditorRSForm/FormRSForm.tsx b/rsconcept/frontend/src/pages/RSFormPage/EditorRSForm/FormRSForm.tsx
index 387b3723..d8f01e64 100644
--- a/rsconcept/frontend/src/pages/RSFormPage/EditorRSForm/FormRSForm.tsx
+++ b/rsconcept/frontend/src/pages/RSFormPage/EditorRSForm/FormRSForm.tsx
@@ -6,6 +6,7 @@ import { FiSave } from 'react-icons/fi';
import { LuGitBranchPlus, LuPencilLine } from 'react-icons/lu';
import { toast } from 'react-toastify';
+import HelpButton from '@/components/Help/HelpButton';
import Checkbox from '@/components/ui/Checkbox';
import Label from '@/components/ui/Label';
import MiniButton from '@/components/ui/MiniButton';
@@ -17,6 +18,7 @@ import VersionSelector from '@/components/VersionSelector';
import { useAuth } from '@/context/AuthContext';
import { useRSForm } from '@/context/RSFormContext';
import { LibraryItemType } from '@/models/library';
+import { HelpTopic } from '@/models/miscellaneous';
import { IRSFormCreateData } from '@/models/rsform';
import { classnames, limits, patterns } from '@/utils/constants';
@@ -117,24 +119,27 @@ function FormRSForm({ id, isModified, setIsModified }: FormRSFormProps) {
onChange={event => setAlias(event.target.value)}
/>
- {controller.isMutable || controller.isProcessing ? (
-
- }
- />
- }
- />
-
- ) : null}
+
+ {controller.isMutable || controller.isProcessing ? (
+ <>
+ }
+ />
+ }
+ />
+ >
+ ) : null}
+
+ ';
case HelpTopic.RSLANG: return 'Справка по языку родов структур и экспликации';
case HelpTopic.TERM_CONTROL: return 'Справка по контролю терминов и текстовым отсылкам';
+ case HelpTopic.VERSIONS: return 'Справка по управлению версиями схем';
case HelpTopic.EXTEOR: return 'Справка по программе для экспликации "Экстеор" для Windows';
case HelpTopic.API: return 'Описание интерфейса для разработчиков';
case HelpTopic.PRIVACY: return 'Политика обработки персональных данных';