mirror of
https://github.com/IRBorisov/ConceptPortal.git
synced 2025-06-26 13:00:39 +03:00
This commit is contained in:
parent
50452bd92d
commit
c0235e573a
|
@ -12,7 +12,7 @@ interface InfoConstituentaProps extends CProps.Div {
|
||||||
|
|
||||||
function InfoConstituenta({ data, className, ...restProps }: InfoConstituentaProps) {
|
function InfoConstituenta({ data, className, ...restProps }: InfoConstituentaProps) {
|
||||||
return (
|
return (
|
||||||
<div className={clsx('dense min-w-[15rem]', className)} {...restProps}>
|
<div className={clsx('dense min-w-[15rem] break-words', className)} {...restProps}>
|
||||||
<h2>
|
<h2>
|
||||||
{data.alias}
|
{data.alias}
|
||||||
{data.is_inherited ? ' (наследуется)' : ''}
|
{data.is_inherited ? ' (наследуется)' : ''}
|
||||||
|
@ -28,7 +28,7 @@ function InfoConstituenta({ data, className, ...restProps }: InfoConstituentaPro
|
||||||
<span className='font-math'>{labelCstTypification(data)}</span>
|
<span className='font-math'>{labelCstTypification(data)}</span>
|
||||||
</p>
|
</p>
|
||||||
{data.definition_formal ? (
|
{data.definition_formal ? (
|
||||||
<p>
|
<p className='break-all'>
|
||||||
<b>Выражение: </b>
|
<b>Выражение: </b>
|
||||||
<span className='font-math'>{data.definition_formal}</span>
|
<span className='font-math'>{data.definition_formal}</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -90,6 +90,7 @@ function PickConstituenta({
|
||||||
<div className='border divide-y'>
|
<div className='border divide-y'>
|
||||||
<SearchBar
|
<SearchBar
|
||||||
id={id ? `${id}__search` : undefined}
|
id={id ? `${id}__search` : undefined}
|
||||||
|
className='clr-input'
|
||||||
noBorder
|
noBorder
|
||||||
value={filterText}
|
value={filterText}
|
||||||
onChange={newValue => setFilterText(newValue)}
|
onChange={newValue => setFilterText(newValue)}
|
||||||
|
|
|
@ -24,6 +24,7 @@ export interface ModalProps extends CProps.Styling {
|
||||||
overflowVisible?: boolean;
|
overflowVisible?: boolean;
|
||||||
|
|
||||||
hideWindow: () => void;
|
hideWindow: () => void;
|
||||||
|
beforeSubmit?: () => boolean;
|
||||||
onSubmit?: () => void;
|
onSubmit?: () => void;
|
||||||
onCancel?: () => void;
|
onCancel?: () => void;
|
||||||
|
|
||||||
|
@ -33,6 +34,7 @@ export interface ModalProps extends CProps.Styling {
|
||||||
function Modal({
|
function Modal({
|
||||||
header,
|
header,
|
||||||
hideWindow,
|
hideWindow,
|
||||||
|
beforeSubmit,
|
||||||
onSubmit,
|
onSubmit,
|
||||||
readonly,
|
readonly,
|
||||||
onCancel,
|
onCancel,
|
||||||
|
@ -53,8 +55,11 @@ function Modal({
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleSubmit = () => {
|
const handleSubmit = () => {
|
||||||
hideWindow();
|
if (beforeSubmit && !beforeSubmit()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (onSubmit) onSubmit();
|
if (onSubmit) onSubmit();
|
||||||
|
hideWindow();
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
|
@ -16,6 +16,7 @@ import { CstType, ICstCreateData, IRSForm } from '@/models/rsform';
|
||||||
import { generateAlias, validateNewAlias } from '@/models/rsformAPI';
|
import { generateAlias, validateNewAlias } from '@/models/rsformAPI';
|
||||||
import { inferTemplatedType, substituteTemplateArgs } from '@/models/rslangAPI';
|
import { inferTemplatedType, substituteTemplateArgs } from '@/models/rslangAPI';
|
||||||
import { PARAMETER } from '@/utils/constants';
|
import { PARAMETER } from '@/utils/constants';
|
||||||
|
import { prompts } from '@/utils/labels';
|
||||||
|
|
||||||
import FormCreateCst from '../DlgCreateCst/FormCreateCst';
|
import FormCreateCst from '../DlgCreateCst/FormCreateCst';
|
||||||
import TabArguments, { IArgumentsState } from './TabArguments';
|
import TabArguments, { IArgumentsState } from './TabArguments';
|
||||||
|
@ -55,7 +56,18 @@ function DlgConstituentaTemplate({ hideWindow, schema, onCreate, insertAfter }:
|
||||||
});
|
});
|
||||||
|
|
||||||
const [validated, setValidated] = useState(false);
|
const [validated, setValidated] = useState(false);
|
||||||
const handleSubmit = () => onCreate(constituenta);
|
|
||||||
|
function handleSubmit() {
|
||||||
|
onCreate(constituenta);
|
||||||
|
}
|
||||||
|
|
||||||
|
function handlePrompt(): boolean {
|
||||||
|
const definedSomeArgs = substitutes.arguments.some(arg => !!arg.value);
|
||||||
|
if (!definedSomeArgs && !window.confirm(prompts.templateUndefined)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
useLayoutEffect(() => {
|
useLayoutEffect(() => {
|
||||||
if (!template.templateID) {
|
if (!template.templateID) {
|
||||||
|
@ -151,6 +163,7 @@ function DlgConstituentaTemplate({ hideWindow, schema, onCreate, insertAfter }:
|
||||||
className='w-[43rem] h-[36.5rem] px-6'
|
className='w-[43rem] h-[36.5rem] px-6'
|
||||||
hideWindow={hideWindow}
|
hideWindow={hideWindow}
|
||||||
canSubmit={validated}
|
canSubmit={validated}
|
||||||
|
beforeSubmit={handlePrompt}
|
||||||
onSubmit={handleSubmit}
|
onSubmit={handleSubmit}
|
||||||
>
|
>
|
||||||
<Overlay position='top-0 right-[6rem]'>
|
<Overlay position='top-0 right-[6rem]'>
|
||||||
|
|
|
@ -158,7 +158,7 @@ function EditorRSList({ onOpenEdit }: EditorRSListProps) {
|
||||||
</div>
|
</div>
|
||||||
) : null}
|
) : null}
|
||||||
|
|
||||||
<Overlay position='top-[0.25rem] right-[1rem]' layer='z-navigation'>
|
<Overlay position='top-[0.25rem] right-[1rem]' layer='z-tooltip'>
|
||||||
<MiniButton
|
<MiniButton
|
||||||
title='Выгрузить в формате CSV'
|
title='Выгрузить в формате CSV'
|
||||||
icon={<IconCSV size='1.25rem' className='icon-green' />}
|
icon={<IconCSV size='1.25rem' className='icon-green' />}
|
||||||
|
|
|
@ -254,7 +254,7 @@ function MenuRSTabs({ onDestroy }: MenuRSTabsProps) {
|
||||||
text='Порождение структуры'
|
text='Порождение структуры'
|
||||||
titleHtml='Раскрыть структуру типизации <br/>выделенной конституенты'
|
titleHtml='Раскрыть структуру типизации <br/>выделенной конституенты'
|
||||||
icon={<IconGenerateStructure size='1rem' className='icon-primary' />}
|
icon={<IconGenerateStructure size='1rem' className='icon-primary' />}
|
||||||
disabled={!controller.isContentEditable || !controller.canProduceStructure}
|
disabled={!controller.isContentEditable || !controller.canProduceStructure || controller.isProcessing}
|
||||||
onClick={handleProduceStructure}
|
onClick={handleProduceStructure}
|
||||||
/>
|
/>
|
||||||
<DropdownButton
|
<DropdownButton
|
||||||
|
|
|
@ -1013,6 +1013,7 @@ export const prompts = {
|
||||||
'Внимание!!\nУдаление операционной схемы приведет к удалению всех операций и собственных концептуальных схем.\nДанное действие нельзя отменить.\nВы уверены, что хотите удалить данную ОСС?',
|
'Внимание!!\nУдаление операционной схемы приведет к удалению всех операций и собственных концептуальных схем.\nДанное действие нельзя отменить.\nВы уверены, что хотите удалить данную ОСС?',
|
||||||
generateWordforms: 'Данное действие приведет к перезаписи словоформ при совпадении граммем. Продолжить?',
|
generateWordforms: 'Данное действие приведет к перезаписи словоформ при совпадении граммем. Продолжить?',
|
||||||
restoreArchive: 'При восстановлении архивной версии актуальная схему будет заменена. Продолжить?',
|
restoreArchive: 'При восстановлении архивной версии актуальная схему будет заменена. Продолжить?',
|
||||||
|
templateUndefined: 'Вы уверены, что хотите создать шаблонную конституенту не фиксируя аргументы?',
|
||||||
ownerChange:
|
ownerChange:
|
||||||
'Вы уверены, что хотите изменить владельца? Вы потеряете право управления данной схемой. Данное действие отменить нельзя'
|
'Вы уверены, что хотите изменить владельца? Вы потеряете право управления данной схемой. Данное действие отменить нельзя'
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user