mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-05-02 04:23:57 +00:00
diagram ctx menu improved
This commit is contained in:
@@ -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}
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user