mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-20 13:36:02 +00:00
grayed nodes in perspective designer
This commit is contained in:
@@ -66,7 +66,8 @@
|
||||
$: top = table?.top;
|
||||
$: mainIcon = settings?.getMainTableIcon ? settings?.getMainTableIcon(designerId) : null;
|
||||
$: specificDb = settings?.tableSpecificDb ? settings?.tableSpecificDb(designerId) : null;
|
||||
$: filterParentRows = settings?.hasFilterParentRowsFlag ? settings?.hasFilterParentRowsFlag(designerId) : null;
|
||||
$: filterParentRows = settings?.hasFilterParentRowsFlag ? settings?.hasFilterParentRowsFlag(designerId) : false;
|
||||
$: isGrayed = settings?.isGrayedTable ? settings?.isGrayedTable(designerId) : false;
|
||||
|
||||
export function isSelected() {
|
||||
return table?.isSelectedTable;
|
||||
@@ -234,6 +235,7 @@
|
||||
>
|
||||
<div
|
||||
class="header"
|
||||
class:isGrayed
|
||||
class:isTable={objectTypeField == 'tables'}
|
||||
class:isView={objectTypeField == 'views'}
|
||||
use:moveDrag={settings?.canSelectColumns ? [handleMoveStart, handleMove, handleMoveEnd] : null}
|
||||
@@ -355,6 +357,9 @@
|
||||
.header.isView {
|
||||
background: var(--theme-bg-magenta);
|
||||
}
|
||||
.header.isGrayed {
|
||||
background: var(--theme-bg-2);
|
||||
}
|
||||
.close {
|
||||
background: var(--theme-bg-1);
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
root &&
|
||||
config.nodes.find(x => !x.position) &&
|
||||
perspectiveNodesHaveStructure(config, dbInfos, conid, database) &&
|
||||
config.nodes.every(x => root.findNodeByDesignerId(x.designerId))
|
||||
config.nodes.every(x => root?.findNodeByDesignerId(x.designerId))
|
||||
) {
|
||||
await tick();
|
||||
runCommand('designer.arrange');
|
||||
@@ -152,8 +152,8 @@
|
||||
return [{ text: 'Remove', onClick: () => onRemoveReference(reference) }];
|
||||
},
|
||||
columnMenu: ({ designer, designerId, column, foreignKey }) => {
|
||||
const node = root.findNodeByDesignerId(designerId);
|
||||
const child = node.childNodes.find(x => x.columnName == column.columnName);
|
||||
const node = root?.findNodeByDesignerId(designerId);
|
||||
const child = node?.childNodes?.find(x => x.columnName == column.columnName);
|
||||
return getPerspectiveNodeMenu({
|
||||
config,
|
||||
setConfig,
|
||||
@@ -165,7 +165,7 @@
|
||||
});
|
||||
},
|
||||
tableMenu: ({ designer, designerId, onRemoveTable }) => {
|
||||
const node = root.findNodeByDesignerId(designerId);
|
||||
const node = root?.findNodeByDesignerId(designerId);
|
||||
return [
|
||||
{ text: 'Remove', onClick: () => onRemoveTable({ designerId }) },
|
||||
getPerspectiveNodeMenu({
|
||||
@@ -265,6 +265,13 @@
|
||||
}
|
||||
},
|
||||
hasFilterParentRowsFlag: designerId => !!config.nodes.find(x => x.designerId == designerId)?.isParentFilter,
|
||||
isGrayedTable: designerId => {
|
||||
const node = root?.findNodeByDesignerId(designerId);
|
||||
if (!node) return true;
|
||||
if (node?.hasUncheckedNodeInPath) return true;
|
||||
|
||||
return false;
|
||||
},
|
||||
}}
|
||||
referenceComponent={QueryDesignerReference}
|
||||
value={createDesignerModel(config, dbInfos)}
|
||||
|
||||
Reference in New Issue
Block a user