diff --git a/packages/web/src/designer/DesignerTable.svelte b/packages/web/src/designer/DesignerTable.svelte index d8fb21e04..ff7d9b9d6 100644 --- a/packages/web/src/designer/DesignerTable.svelte +++ b/packages/web/src/designer/DesignerTable.svelte @@ -9,6 +9,7 @@ import InputTextModal from '../modals/InputTextModal.svelte'; import { showModal } from '../modals/modalTools'; import { currentThemeDefinition } from '../stores'; + import VirtualForeignKeyEditorModal from '../tableeditor/VirtualForeignKeyEditorModal.svelte'; import contextMenu from '../utility/contextMenu'; import moveDrag from '../utility/moveDrag'; import ColumnLine from './ColumnLine.svelte'; @@ -166,6 +167,15 @@ }); }; + const handleDefineVirtualForeignKey = table => { + showModal(VirtualForeignKeyEditorModal, { + schemaName: table.schemaName, + pureName: table.pureName, + conid, + database, + }); + }; + function createMenu() { return [ { text: 'Remove', onClick: () => onRemoveTable({ designerId }) }, @@ -185,6 +195,11 @@ settings?.allowAddAllReferences && !isMultipleTableSelection && { text: 'Add references', onClick: () => onAddAllReferences(table) }, settings?.allowChangeColor && { text: 'Change color', onClick: () => onChangeTableColor(table) }, + settings?.allowDefineVirtualReferences && + !isMultipleTableSelection && { + text: 'Define virtual foreign key', + onClick: () => handleDefineVirtualForeignKey(table), + }, settings?.appendTableSystemMenu && !isMultipleTableSelection && [{ divider: true }, createDatabaseObjectMenu({ ...table, conid, database })], ]; diff --git a/packages/web/src/designer/DiagramDesigner.svelte b/packages/web/src/designer/DiagramDesigner.svelte index 7f0ec71bc..d5f62433c 100644 --- a/packages/web/src/designer/DiagramDesigner.svelte +++ b/packages/web/src/designer/DiagramDesigner.svelte @@ -21,6 +21,7 @@ allowChangeColor: true, appendTableSystemMenu: true, customizeStyle: true, + allowDefineVirtualReferences: true, }} referenceComponent={DiagramDesignerReference} /> diff --git a/packages/web/src/designer/QueryDesigner.svelte b/packages/web/src/designer/QueryDesigner.svelte index 7eb74fa20..508a970b2 100644 --- a/packages/web/src/designer/QueryDesigner.svelte +++ b/packages/web/src/designer/QueryDesigner.svelte @@ -21,6 +21,7 @@ allowChangeColor: false, appendTableSystemMenu: false, customizeStyle: false, + allowDefineVirtualReferences: false, }} referenceComponent={QueryDesignerReference} />