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,8 +119,9 @@ 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 <MiniButton
noHover noHover
title={controller.isContentEditable ? 'Создать версию' : 'Переключитесь на актуальную версию'} title={controller.isContentEditable ? 'Создать версию' : 'Переключитесь на актуальную версию'}
@ -133,8 +136,10 @@ function FormRSForm({ id, isModified, setIsModified }: FormRSFormProps) {
onClick={controller.editVersions} onClick={controller.editVersions}
icon={<LuPencilLine size='1.25rem' className='icon-primary' />} 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 'Политика обработки персональных данных';