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,14 +207,22 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
const removeTable = table => {
|
const removeTable = table => {
|
||||||
callChange(current => ({
|
if (isMultipleTableSelection && settings?.useDatabaseReferences && settings?.canSelectTables) {
|
||||||
...current,
|
callChange(current => ({
|
||||||
tables: (current.tables || []).filter(x => x.designerId != table.designerId),
|
...current,
|
||||||
references: (current.references || []).filter(
|
tables: (current.tables || []).filter(x => !x.isSelectedTable),
|
||||||
x => x.sourceId != table.designerId && x.targetId != table.designerId
|
}));
|
||||||
),
|
updateFromDbInfo();
|
||||||
columns: (current.columns || []).filter(x => x.designerId != table.designerId),
|
} else {
|
||||||
}));
|
callChange(current => ({
|
||||||
|
...current,
|
||||||
|
tables: (current.tables || []).filter(x => x.designerId != table.designerId),
|
||||||
|
references: (current.references || []).filter(
|
||||||
|
x => x.sourceId != table.designerId && x.targetId != 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,20 +144,23 @@
|
|||||||
return [
|
return [
|
||||||
{ text: 'Remove', onClick: () => onRemoveTable({ designerId }) },
|
{ text: 'Remove', onClick: () => onRemoveTable({ designerId }) },
|
||||||
{ divider: true },
|
{ divider: true },
|
||||||
settings?.allowTableAlias && [
|
settings?.allowTableAlias &&
|
||||||
{ text: 'Set table alias', onClick: handleSetTableAlias },
|
!isMultipleTableSelection && [
|
||||||
alias && {
|
{ text: 'Set table alias', onClick: handleSetTableAlias },
|
||||||
text: 'Remove table alias',
|
alias && {
|
||||||
onClick: () =>
|
text: 'Remove table alias',
|
||||||
onChangeTable({
|
onClick: () =>
|
||||||
...table,
|
onChangeTable({
|
||||||
alias: null,
|
...table,
|
||||||
}),
|
alias: null,
|
||||||
},
|
}),
|
||||||
],
|
},
|
||||||
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