Add Versioning help

This commit is contained in:
IRBorisov 2024-03-12 13:47:19 +03:00
parent 1d701530df
commit 83bf42ed57
7 changed files with 42 additions and 18 deletions

View File

@ -127,6 +127,7 @@
"Wordforms", "Wordforms",
"Булеан", "Булеан",
"Бурбаки", "Бурбаки",
"Версионирование",
"Десинглетон", "Десинглетон",
"компаратив", "компаратив",
"конституент", "конституент",

View File

@ -0,0 +1,13 @@
function HelpVersions() {
// prettier-ignore
return (
<div>
<h1>Версионирование схем</h1>
<p>Версионирование позволяет сохранить текущее состояние схемы под определенным именем (версией) и использовать ссылку на него для совместной работы. После создания версии ее содержание изменить нельзя</p>
<p><b>Владелец</b> обладает правом редактирования названий и создания новых версий</p>
<p>Управление версиями происходит в Карточке схемы</p>
<p>Для получения ссылки на конкретную версию необходимо выбрать ее в карточке и воспользоваться кнопкой Поделиться</p>
</div>);
}
export default HelpVersions;

View File

@ -12,6 +12,7 @@ import HelpRSLang from './Help/HelpRSLang';
import HelpRSTemplates from './Help/HelpRSTemplates'; import HelpRSTemplates from './Help/HelpRSTemplates';
import HelpTermGraph from './Help/HelpTermGraph'; import HelpTermGraph from './Help/HelpTermGraph';
import HelpTerminologyControl from './Help/HelpTerminologyControl'; import HelpTerminologyControl from './Help/HelpTerminologyControl';
import HelpVersions from './Help/HelpVersions';
interface InfoTopicProps { interface InfoTopicProps {
topic: HelpTopic; topic: HelpTopic;
@ -27,6 +28,7 @@ function InfoTopic({ topic }: InfoTopicProps) {
if (topic === HelpTopic.RSTEMPLATES) return <HelpRSTemplates />; if (topic === HelpTopic.RSTEMPLATES) return <HelpRSTemplates />;
if (topic === HelpTopic.RSLANG) return <HelpRSLang />; if (topic === HelpTopic.RSLANG) return <HelpRSLang />;
if (topic === HelpTopic.TERM_CONTROL) return <HelpTerminologyControl />; if (topic === HelpTopic.TERM_CONTROL) return <HelpTerminologyControl />;
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.API) return <HelpAPI />;
if (topic === HelpTopic.PRIVACY) return <HelpPrivacy />; if (topic === HelpTopic.PRIVACY) return <HelpPrivacy />;

View File

@ -41,6 +41,7 @@ export enum HelpTopic {
RSTEMPLATES = 'rstemplates', RSTEMPLATES = 'rstemplates',
RSLANG = 'rslang', RSLANG = 'rslang',
TERM_CONTROL = 'terminology-control', TERM_CONTROL = 'terminology-control',
VERSIONS = 'versions',
EXTEOR = 'exteor', EXTEOR = 'exteor',
API = 'api', API = 'api',
PRIVACY = 'privacy' PRIVACY = 'privacy'

View File

@ -6,6 +6,7 @@ import { FiSave } from 'react-icons/fi';
import { LuGitBranchPlus, LuPencilLine } from 'react-icons/lu'; import { LuGitBranchPlus, LuPencilLine } from 'react-icons/lu';
import { toast } from 'react-toastify'; import { toast } from 'react-toastify';
import HelpButton from '@/components/Help/HelpButton';
import Checkbox from '@/components/ui/Checkbox'; import Checkbox from '@/components/ui/Checkbox';
import Label from '@/components/ui/Label'; import Label from '@/components/ui/Label';
import MiniButton from '@/components/ui/MiniButton'; import MiniButton from '@/components/ui/MiniButton';
@ -17,6 +18,7 @@ import VersionSelector from '@/components/VersionSelector';
import { useAuth } from '@/context/AuthContext'; import { useAuth } from '@/context/AuthContext';
import { useRSForm } from '@/context/RSFormContext'; import { useRSForm } from '@/context/RSFormContext';
import { LibraryItemType } from '@/models/library'; import { LibraryItemType } from '@/models/library';
import { HelpTopic } from '@/models/miscellaneous';
import { IRSFormCreateData } from '@/models/rsform'; import { IRSFormCreateData } from '@/models/rsform';
import { classnames, limits, patterns } from '@/utils/constants'; import { classnames, limits, patterns } from '@/utils/constants';
@ -117,24 +119,27 @@ function FormRSForm({ id, isModified, setIsModified }: FormRSFormProps) {
onChange={event => setAlias(event.target.value)} onChange={event => setAlias(event.target.value)}
/> />
<div className='flex flex-col'> <div className='flex flex-col'>
{controller.isMutable || controller.isProcessing ? ( <Overlay position='top-[-0.25rem] right-[-0.25rem] flex'>
<Overlay position='top-[-0.25rem] right-[-0.25rem] flex'> {controller.isMutable || controller.isProcessing ? (
<MiniButton <>
noHover <MiniButton
title={controller.isContentEditable ? 'Создать версию' : 'Переключитесь на актуальную версию'} noHover
disabled={!controller.isContentEditable} title={controller.isContentEditable ? 'Создать версию' : 'Переключитесь на актуальную версию'}
onClick={controller.createVersion} disabled={!controller.isContentEditable}
icon={<LuGitBranchPlus size='1.25rem' className='icon-green' />} onClick={controller.createVersion}
/> icon={<LuGitBranchPlus size='1.25rem' className='icon-green' />}
<MiniButton />
noHover <MiniButton
title='Редактировать версии' noHover
disabled={!schema || schema?.versions.length === 0} title='Редактировать версии'
onClick={controller.editVersions} disabled={!schema || schema?.versions.length === 0}
icon={<LuPencilLine size='1.25rem' className='icon-primary' />} onClick={controller.editVersions}
/> icon={<LuPencilLine size='1.25rem' className='icon-primary' />}
</Overlay> />
) : null} </>
) : null}
<HelpButton topic={HelpTopic.VERSIONS} className='max-w-[30rem]' offset={4} />
</Overlay>
<Label text='Версия' className='mb-2' /> <Label text='Версия' className='mb-2' />
<VersionSelector <VersionSelector
value={schema?.version} // prettier: split lines value={schema?.version} // prettier: split lines

View File

@ -345,6 +345,7 @@ export function labelHelpTopic(topic: HelpTopic): string {
case HelpTopic.RSTEMPLATES: return '- Банк выражений'; case HelpTopic.RSTEMPLATES: return '- Банк выражений';
case HelpTopic.RSLANG: return 'Экспликация'; case HelpTopic.RSLANG: return 'Экспликация';
case HelpTopic.TERM_CONTROL: return 'Терминологизация'; case HelpTopic.TERM_CONTROL: return 'Терминологизация';
case HelpTopic.VERSIONS: return 'Версионирование';
case HelpTopic.EXTEOR: return 'Экстеор'; case HelpTopic.EXTEOR: return 'Экстеор';
case HelpTopic.API: return 'REST API'; case HelpTopic.API: return 'REST API';
case HelpTopic.PRIVACY: return 'Конфиденциальность'; case HelpTopic.PRIVACY: return 'Конфиденциальность';
@ -366,6 +367,7 @@ export function describeHelpTopic(topic: HelpTopic): string {
case HelpTopic.RSTEMPLATES: return 'Описание работы с Банком выражений>'; case HelpTopic.RSTEMPLATES: return 'Описание работы с Банком выражений>';
case HelpTopic.RSLANG: return 'Справка по языку родов структур и экспликации'; case HelpTopic.RSLANG: return 'Справка по языку родов структур и экспликации';
case HelpTopic.TERM_CONTROL: return 'Справка по контролю терминов и текстовым отсылкам'; case HelpTopic.TERM_CONTROL: 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 'Политика обработки персональных данных';