From 090ffa064dafcddb7e499e6f73d0bec6cd7ac1b0 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Sat, 6 Aug 2022 14:05:18 +0200 Subject: [PATCH] perspective: open table ctx menu --- packages/datalib/src/PerspectiveDisplay.ts | 4 ++++ packages/datalib/src/PerspectiveTreeNode.ts | 24 +++++++++++++++++++ .../PerspectiveHeaderControl.svelte | 16 ++++++------- .../src/perspectives/PerspectiveTable.svelte | 23 ++++++++++++++++++ 4 files changed, 59 insertions(+), 8 deletions(-) diff --git a/packages/datalib/src/PerspectiveDisplay.ts b/packages/datalib/src/PerspectiveDisplay.ts index b10f31557..db3d1eb5a 100644 --- a/packages/datalib/src/PerspectiveDisplay.ts +++ b/packages/datalib/src/PerspectiveDisplay.ts @@ -47,6 +47,10 @@ export class PerspectiveDisplayColumn { return this.parentNodes[level]?.title; } + getParentDataAttributes(level) { + return this.parentNodes[level]?.headerDataAttributes; + } + // hasParentNode(node: PerspectiveTreeNode) { // return this.parentNodes.includes(node); // } diff --git a/packages/datalib/src/PerspectiveTreeNode.ts b/packages/datalib/src/PerspectiveTreeNode.ts index 6c7a0be6b..2d5bc54cd 100644 --- a/packages/datalib/src/PerspectiveTreeNode.ts +++ b/packages/datalib/src/PerspectiveTreeNode.ts @@ -68,6 +68,9 @@ export abstract class PerspectiveTreeNode { get fieldName() { return this.codeName; } + get headerDataAttributes() { + return {}; + } get dataField() { return this.codeName; } @@ -375,6 +378,18 @@ export class PerspectiveTableColumnNode extends PerspectiveTreeNode { return condition; } + + get headerDataAttributes() { + if (this.foreignKey) { + return { + schemaName: this.foreignKey.refSchemaName, + pureName: this.foreignKey.refTableName, + conid: this.databaseConfig.conid, + database: this.databaseConfig.database, + }; + } + return null; + } } export class PerspectiveTableNode extends PerspectiveTreeNode { @@ -432,6 +447,15 @@ export class PerspectiveTableNode extends PerspectiveTreeNode { getBaseTableFromThis() { return this.table; } + + get headerDataAttributes() { + return { + schemaName: this.table.schemaName, + pureName: this.table.pureName, + conid: this.databaseConfig.conid, + database: this.databaseConfig.database, + }; + } } export class PerspectiveViewNode extends PerspectiveTreeNode { diff --git a/packages/web/src/perspectives/PerspectiveHeaderControl.svelte b/packages/web/src/perspectives/PerspectiveHeaderControl.svelte index eba3c5c9e..e581d01c8 100644 --- a/packages/web/src/perspectives/PerspectiveHeaderControl.svelte +++ b/packages/web/src/perspectives/PerspectiveHeaderControl.svelte @@ -1,6 +1,6 @@ {#if column.isVisible(columnLevel)} - +
{column.title} @@ -51,7 +46,12 @@ {/if} {#if column.showParent(columnLevel)} - {column.getParentName(columnLevel)} + `data-${k}`)} + >{column.getParentName(columnLevel)} {/if}