diagram ctx menu improved

This commit is contained in:
Jan Prochazka
2022-01-20 14:43:19 +01:00
parent a0d7ade863
commit 53441d3e62
2 changed files with 36 additions and 21 deletions

View File

@@ -71,6 +71,8 @@
$: tables = value?.tables as any[]; $: tables = value?.tables as any[];
$: references = value?.references as any[]; $: references = value?.references as any[];
$: isMultipleTableSelection = tables.filter(x => x.isSelectedTable).length >= 2;
const tableRefs = {}; const tableRefs = {};
const referenceRefs = {}; const referenceRefs = {};
$: domTables = _.pickBy(_.mapValues(tableRefs, (tbl: any) => tbl?.getDomTable())); $: domTables = _.pickBy(_.mapValues(tableRefs, (tbl: any) => tbl?.getDomTable()));
@@ -205,6 +207,13 @@
}; };
const removeTable = table => { const removeTable = table => {
if (isMultipleTableSelection && settings?.useDatabaseReferences && settings?.canSelectTables) {
callChange(current => ({
...current,
tables: (current.tables || []).filter(x => !x.isSelectedTable),
}));
updateFromDbInfo();
} else {
callChange(current => ({ callChange(current => ({
...current, ...current,
tables: (current.tables || []).filter(x => x.designerId != table.designerId), tables: (current.tables || []).filter(x => x.designerId != table.designerId),
@@ -213,6 +222,7 @@
), ),
columns: (current.columns || []).filter(x => x.designerId != table.designerId), columns: (current.columns || []).filter(x => x.designerId != table.designerId),
})); }));
}
}; };
const changeReference = ref => { const changeReference = ref => {
@@ -753,6 +763,7 @@
{table} {table}
{conid} {conid}
{database} {database}
{isMultipleTableSelection}
onChangeTable={changeTable} onChangeTable={changeTable}
onBringToFront={bringToFront} onBringToFront={bringToFront}
onSelectTable={selectTable} onSelectTable={selectTable}

View File

@@ -26,6 +26,7 @@
export let onSelectColumn; export let onSelectColumn;
export let onChangeColumn; export let onChangeColumn;
export let onChangeTableColor; export let onChangeTableColor;
export let isMultipleTableSelection;
export let onMoveStart; export let onMoveStart;
export let onMove; export let onMove;
@@ -143,7 +144,8 @@
return [ return [
{ text: 'Remove', onClick: () => onRemoveTable({ designerId }) }, { text: 'Remove', onClick: () => onRemoveTable({ designerId }) },
{ divider: true }, { divider: true },
settings?.allowTableAlias && [ settings?.allowTableAlias &&
!isMultipleTableSelection && [
{ text: 'Set table alias', onClick: handleSetTableAlias }, { text: 'Set table alias', onClick: handleSetTableAlias },
alias && { alias && {
text: 'Remove table alias', text: 'Remove table alias',
@@ -154,9 +156,11 @@
}), }),
}, },
], ],
settings?.allowAddAllReferences && { text: 'Add references', onClick: () => onAddAllReferences(table) }, settings?.allowAddAllReferences &&
!isMultipleTableSelection && { text: 'Add references', onClick: () => onAddAllReferences(table) },
settings?.allowChangeColor && { text: 'Change color', onClick: () => onChangeTableColor(table) }, settings?.allowChangeColor && { text: 'Change color', onClick: () => onChangeTableColor(table) },
settings?.appendTableSystemMenu && [{ divider: true }, createDatabaseObjectMenu({ ...table, conid, database })], settings?.appendTableSystemMenu &&
!isMultipleTableSelection && [{ divider: true }, createDatabaseObjectMenu({ ...table, conid, database })],
]; ];
} }
</script> </script>