mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-30 08:03:58 +00:00
fixed multi-db perspectives
This commit is contained in:
@@ -78,7 +78,7 @@ export abstract class PerspectiveTreeNode {
|
|||||||
public setConfig: ChangePerspectiveConfigFunc,
|
public setConfig: ChangePerspectiveConfigFunc,
|
||||||
public parentNode: PerspectiveTreeNode,
|
public parentNode: PerspectiveTreeNode,
|
||||||
public dataProvider: PerspectiveDataProvider,
|
public dataProvider: PerspectiveDataProvider,
|
||||||
public databaseConfig: PerspectiveDatabaseConfig,
|
public defaultDatabaseConfig: PerspectiveDatabaseConfig,
|
||||||
public designerId: string
|
public designerId: string
|
||||||
) {
|
) {
|
||||||
this.nodeConfig = config.nodes.find(x => x.designerId == designerId);
|
this.nodeConfig = config.nodes.find(x => x.designerId == designerId);
|
||||||
@@ -126,6 +126,12 @@ export abstract class PerspectiveTreeNode {
|
|||||||
get engineType(): PerspectiveDatabaseEngineType {
|
get engineType(): PerspectiveDatabaseEngineType {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
get databaseConfig(): PerspectiveDatabaseConfig {
|
||||||
|
const res = { ...this.defaultDatabaseConfig };
|
||||||
|
if (this.nodeConfig?.conid) res.conid = this.nodeConfig?.conid;
|
||||||
|
if (this.nodeConfig?.database) res.database = this.nodeConfig?.database;
|
||||||
|
return res;
|
||||||
|
}
|
||||||
abstract getNodeLoadProps(parentRows: any[]): PerspectiveDataLoadProps;
|
abstract getNodeLoadProps(parentRows: any[]): PerspectiveDataLoadProps;
|
||||||
get isRoot() {
|
get isRoot() {
|
||||||
return this.parentNode == null;
|
return this.parentNode == null;
|
||||||
@@ -534,11 +540,11 @@ export class PerspectiveTableColumnNode extends PerspectiveTreeNode {
|
|||||||
config: PerspectiveConfig,
|
config: PerspectiveConfig,
|
||||||
setConfig: ChangePerspectiveConfigFunc,
|
setConfig: ChangePerspectiveConfigFunc,
|
||||||
dataProvider: PerspectiveDataProvider,
|
dataProvider: PerspectiveDataProvider,
|
||||||
databaseConfig: PerspectiveDatabaseConfig,
|
defaultDatabaseConfig: PerspectiveDatabaseConfig,
|
||||||
parentNode: PerspectiveTreeNode,
|
parentNode: PerspectiveTreeNode,
|
||||||
designerId: string
|
designerId: string
|
||||||
) {
|
) {
|
||||||
super(dbs, config, setConfig, parentNode, dataProvider, databaseConfig, designerId);
|
super(dbs, config, setConfig, parentNode, dataProvider, defaultDatabaseConfig, designerId);
|
||||||
|
|
||||||
this.isTable = !!this.db?.tables?.find(x => x.schemaName == table.schemaName && x.pureName == table.pureName);
|
this.isTable = !!this.db?.tables?.find(x => x.schemaName == table.schemaName && x.pureName == table.pureName);
|
||||||
this.isView = !!this.db?.views?.find(x => x.schemaName == table.schemaName && x.pureName == table.pureName);
|
this.isView = !!this.db?.views?.find(x => x.schemaName == table.schemaName && x.pureName == table.pureName);
|
||||||
@@ -690,7 +696,7 @@ export class PerspectiveTableColumnNode extends PerspectiveTreeNode {
|
|||||||
this.config,
|
this.config,
|
||||||
this.setConfig,
|
this.setConfig,
|
||||||
this.dataProvider,
|
this.dataProvider,
|
||||||
this.databaseConfig,
|
this.defaultDatabaseConfig,
|
||||||
this
|
this
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -768,11 +774,11 @@ export class PerspectivePatternColumnNode extends PerspectiveTreeNode {
|
|||||||
config: PerspectiveConfig,
|
config: PerspectiveConfig,
|
||||||
setConfig: ChangePerspectiveConfigFunc,
|
setConfig: ChangePerspectiveConfigFunc,
|
||||||
dataProvider: PerspectiveDataProvider,
|
dataProvider: PerspectiveDataProvider,
|
||||||
databaseConfig: PerspectiveDatabaseConfig,
|
defaultDatabaseConfig: PerspectiveDatabaseConfig,
|
||||||
parentNode: PerspectiveTreeNode,
|
parentNode: PerspectiveTreeNode,
|
||||||
designerId: string
|
designerId: string
|
||||||
) {
|
) {
|
||||||
super(dbs, config, setConfig, parentNode, dataProvider, databaseConfig, designerId);
|
super(dbs, config, setConfig, parentNode, dataProvider, defaultDatabaseConfig, designerId);
|
||||||
this.parentNodeConfig = this.tableNodeOrParent?.nodeConfig;
|
this.parentNodeConfig = this.tableNodeOrParent?.nodeConfig;
|
||||||
// console.log('PATTERN COLUMN', column);
|
// console.log('PATTERN COLUMN', column);
|
||||||
}
|
}
|
||||||
@@ -904,7 +910,7 @@ export class PerspectivePatternColumnNode extends PerspectiveTreeNode {
|
|||||||
this.config,
|
this.config,
|
||||||
this.setConfig,
|
this.setConfig,
|
||||||
this.dataProvider,
|
this.dataProvider,
|
||||||
this.databaseConfig,
|
this.defaultDatabaseConfig,
|
||||||
this,
|
this,
|
||||||
null
|
null
|
||||||
)
|
)
|
||||||
@@ -951,7 +957,7 @@ export class PerspectivePatternColumnNode extends PerspectiveTreeNode {
|
|||||||
}
|
}
|
||||||
// console.log('CP2');
|
// console.log('CP2');
|
||||||
|
|
||||||
const newConfig = { ...this.databaseConfig };
|
const newConfig: PerspectiveDatabaseConfig = { ...this.defaultDatabaseConfig };
|
||||||
if (node.conid) newConfig.conid = node.conid;
|
if (node.conid) newConfig.conid = node.conid;
|
||||||
if (node.database) newConfig.database = node.database;
|
if (node.database) newConfig.database = node.database;
|
||||||
const db = this.dbs?.[newConfig.conid]?.[newConfig.database];
|
const db = this.dbs?.[newConfig.conid]?.[newConfig.database];
|
||||||
@@ -983,7 +989,7 @@ export class PerspectivePatternColumnNode extends PerspectiveTreeNode {
|
|||||||
this.config,
|
this.config,
|
||||||
this.setConfig,
|
this.setConfig,
|
||||||
this.dataProvider,
|
this.dataProvider,
|
||||||
newConfig,
|
this.defaultDatabaseConfig,
|
||||||
this,
|
this,
|
||||||
node.designerId
|
node.designerId
|
||||||
)
|
)
|
||||||
@@ -1073,11 +1079,11 @@ export class PerspectiveTableNode extends PerspectiveTreeNode {
|
|||||||
config: PerspectiveConfig,
|
config: PerspectiveConfig,
|
||||||
setConfig: ChangePerspectiveConfigFunc,
|
setConfig: ChangePerspectiveConfigFunc,
|
||||||
public dataProvider: PerspectiveDataProvider,
|
public dataProvider: PerspectiveDataProvider,
|
||||||
databaseConfig: PerspectiveDatabaseConfig,
|
defaultDatabaseConfig: PerspectiveDatabaseConfig,
|
||||||
parentNode: PerspectiveTreeNode,
|
parentNode: PerspectiveTreeNode,
|
||||||
designerId: string
|
designerId: string
|
||||||
) {
|
) {
|
||||||
super(dbs, config, setConfig, parentNode, dataProvider, databaseConfig, designerId);
|
super(dbs, config, setConfig, parentNode, dataProvider, defaultDatabaseConfig, designerId);
|
||||||
}
|
}
|
||||||
|
|
||||||
get engineType(): PerspectiveDatabaseEngineType {
|
get engineType(): PerspectiveDatabaseEngineType {
|
||||||
@@ -1118,7 +1124,7 @@ export class PerspectiveTableNode extends PerspectiveTreeNode {
|
|||||||
this.config,
|
this.config,
|
||||||
this.setConfig,
|
this.setConfig,
|
||||||
this.dataProvider,
|
this.dataProvider,
|
||||||
this.databaseConfig,
|
this.defaultDatabaseConfig,
|
||||||
this
|
this
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -1160,12 +1166,12 @@ export class PerspectiveTableReferenceNode extends PerspectiveTableNode {
|
|||||||
config: PerspectiveConfig,
|
config: PerspectiveConfig,
|
||||||
setConfig: ChangePerspectiveConfigFunc,
|
setConfig: ChangePerspectiveConfigFunc,
|
||||||
public dataProvider: PerspectiveDataProvider,
|
public dataProvider: PerspectiveDataProvider,
|
||||||
databaseConfig: PerspectiveDatabaseConfig,
|
defaultDatabaseConfig: PerspectiveDatabaseConfig,
|
||||||
public isMultiple: boolean,
|
public isMultiple: boolean,
|
||||||
parentNode: PerspectiveTreeNode,
|
parentNode: PerspectiveTreeNode,
|
||||||
designerId: string
|
designerId: string
|
||||||
) {
|
) {
|
||||||
super(table, dbs, config, setConfig, dataProvider, databaseConfig, parentNode, designerId);
|
super(table, dbs, config, setConfig, dataProvider, defaultDatabaseConfig, parentNode, designerId);
|
||||||
}
|
}
|
||||||
|
|
||||||
matchChildRow(parentRow: any, childRow: any): boolean {
|
matchChildRow(parentRow: any, childRow: any): boolean {
|
||||||
@@ -1264,11 +1270,11 @@ export class PerspectiveCustomJoinTreeNode extends PerspectiveTableNode {
|
|||||||
config: PerspectiveConfig,
|
config: PerspectiveConfig,
|
||||||
setConfig: ChangePerspectiveConfigFunc,
|
setConfig: ChangePerspectiveConfigFunc,
|
||||||
public dataProvider: PerspectiveDataProvider,
|
public dataProvider: PerspectiveDataProvider,
|
||||||
databaseConfig: PerspectiveDatabaseConfig,
|
defaultDatabaseConfig: PerspectiveDatabaseConfig,
|
||||||
parentNode: PerspectiveTreeNode,
|
parentNode: PerspectiveTreeNode,
|
||||||
designerId: string
|
designerId: string
|
||||||
) {
|
) {
|
||||||
super(table, dbs, config, setConfig, dataProvider, databaseConfig, parentNode, designerId);
|
super(table, dbs, config, setConfig, dataProvider, defaultDatabaseConfig, parentNode, designerId);
|
||||||
}
|
}
|
||||||
|
|
||||||
matchChildRow(parentRow: any, childRow: any): boolean {
|
matchChildRow(parentRow: any, childRow: any): boolean {
|
||||||
@@ -1474,7 +1480,7 @@ export function getTableChildPerspectiveNodes(
|
|||||||
config: PerspectiveConfig,
|
config: PerspectiveConfig,
|
||||||
setConfig: ChangePerspectiveConfigFunc,
|
setConfig: ChangePerspectiveConfigFunc,
|
||||||
dataProvider: PerspectiveDataProvider,
|
dataProvider: PerspectiveDataProvider,
|
||||||
databaseConfig: PerspectiveDatabaseConfig,
|
defaultDatabaseConfig: PerspectiveDatabaseConfig,
|
||||||
parentNode: PerspectiveTreeNode
|
parentNode: PerspectiveTreeNode
|
||||||
) {
|
) {
|
||||||
if (!table) return [];
|
if (!table) return [];
|
||||||
@@ -1496,7 +1502,7 @@ export function getTableChildPerspectiveNodes(
|
|||||||
config,
|
config,
|
||||||
setConfig,
|
setConfig,
|
||||||
dataProvider,
|
dataProvider,
|
||||||
databaseConfig,
|
defaultDatabaseConfig,
|
||||||
parentNode,
|
parentNode,
|
||||||
designerId
|
designerId
|
||||||
)
|
)
|
||||||
@@ -1507,7 +1513,7 @@ export function getTableChildPerspectiveNodes(
|
|||||||
config,
|
config,
|
||||||
setConfig,
|
setConfig,
|
||||||
dataProvider,
|
dataProvider,
|
||||||
databaseConfig,
|
defaultDatabaseConfig,
|
||||||
parentNode,
|
parentNode,
|
||||||
designerId
|
designerId
|
||||||
)
|
)
|
||||||
@@ -1526,7 +1532,7 @@ export function getTableChildPerspectiveNodes(
|
|||||||
config,
|
config,
|
||||||
setConfig,
|
setConfig,
|
||||||
dataProvider,
|
dataProvider,
|
||||||
databaseConfig,
|
defaultDatabaseConfig,
|
||||||
parentNode,
|
parentNode,
|
||||||
designerId
|
designerId
|
||||||
)
|
)
|
||||||
@@ -1565,7 +1571,7 @@ export function getTableChildPerspectiveNodes(
|
|||||||
config,
|
config,
|
||||||
setConfig,
|
setConfig,
|
||||||
dataProvider,
|
dataProvider,
|
||||||
databaseConfig,
|
defaultDatabaseConfig,
|
||||||
isMultiple,
|
isMultiple,
|
||||||
parentNode,
|
parentNode,
|
||||||
designerId
|
designerId
|
||||||
@@ -1591,7 +1597,7 @@ export function getTableChildPerspectiveNodes(
|
|||||||
if (ref.columns.find(x => x.source.includes('::') || x.target.includes('::'))) {
|
if (ref.columns.find(x => x.source.includes('::') || x.target.includes('::'))) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const newConfig = { ...databaseConfig };
|
const newConfig: PerspectiveDatabaseConfig = { ...defaultDatabaseConfig };
|
||||||
if (node.conid) newConfig.conid = node.conid;
|
if (node.conid) newConfig.conid = node.conid;
|
||||||
if (node.database) newConfig.database = node.database;
|
if (node.database) newConfig.database = node.database;
|
||||||
const db = dbs?.[newConfig.conid]?.[newConfig.database];
|
const db = dbs?.[newConfig.conid]?.[newConfig.database];
|
||||||
@@ -1623,7 +1629,7 @@ export function getTableChildPerspectiveNodes(
|
|||||||
config,
|
config,
|
||||||
setConfig,
|
setConfig,
|
||||||
dataProvider,
|
dataProvider,
|
||||||
newConfig,
|
defaultDatabaseConfig,
|
||||||
parentNode,
|
parentNode,
|
||||||
node.designerId
|
node.designerId
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user