diff --git a/packages/datalib/src/FreeTableGridDisplay.ts b/packages/datalib/src/FreeTableGridDisplay.ts index 2a18c90c8..f636fcf82 100644 --- a/packages/datalib/src/FreeTableGridDisplay.ts +++ b/packages/datalib/src/FreeTableGridDisplay.ts @@ -22,13 +22,14 @@ export class FreeTableGridDisplay extends GridDisplay { } getDisplayColumns(model: FreeTableModel) { - return ( + return _.uniqBy( model?.structure?.columns ?.map(col => this.getDisplayColumn(col)) ?.map(col => ({ ...col, isChecked: this.isColumnChecked(col), - })) || [] + })) || [], + col => col.uniqueName ); } diff --git a/packages/datalib/src/JslGridDisplay.ts b/packages/datalib/src/JslGridDisplay.ts index 8341a5e21..265c2f05f 100644 --- a/packages/datalib/src/JslGridDisplay.ts +++ b/packages/datalib/src/JslGridDisplay.ts @@ -1,3 +1,4 @@ +import _ from 'lodash'; import { GridDisplay, ChangeCacheFunc, ChangeConfigFunc } from './GridDisplay'; import { QueryResultColumn } from 'dbgate-types'; import { GridConfig, GridCache } from './GridConfig'; @@ -18,21 +19,24 @@ export class JslGridDisplay extends GridDisplay { this.filterable = true; if (structure.columns) { - this.columns = structure.columns - .map(col => ({ - columnName: col.columnName, - headerText: col.columnName, - uniqueName: col.columnName, - uniquePath: [col.columnName], - notNull: col.notNull, - autoIncrement: col.autoIncrement, - pureName: null, - schemaName: null, - })) - ?.map(col => ({ - ...col, - isChecked: this.isColumnChecked(col), - })); + this.columns = _.uniqBy( + structure.columns + .map(col => ({ + columnName: col.columnName, + headerText: col.columnName, + uniqueName: col.columnName, + uniquePath: [col.columnName], + notNull: col.notNull, + autoIncrement: col.autoIncrement, + pureName: null, + schemaName: null, + })) + ?.map(col => ({ + ...col, + isChecked: this.isColumnChecked(col), + })), + col => col.uniqueName + ); } if (structure.__isDynamicStructure) { diff --git a/packages/web/src/datagrid/DataGrid.svelte b/packages/web/src/datagrid/DataGrid.svelte index 6e2c7f42c..a07158311 100644 --- a/packages/web/src/datagrid/DataGrid.svelte +++ b/packages/web/src/datagrid/DataGrid.svelte @@ -80,7 +80,8 @@ export let isDetailView = false; export let showReferences = false; - export let showMacros; + export let showMacros = false; + export let expandMacros = false; export let freeTableColumn = false; export let isDynamicStructure = false; export let macroCondition; @@ -188,7 +189,7 @@ - + diff --git a/packages/web/src/tabs/FreeTableTab.svelte b/packages/web/src/tabs/FreeTableTab.svelte index 4c5664d03..cb1574fee 100644 --- a/packages/web/src/tabs/FreeTableTab.svelte +++ b/packages/web/src/tabs/FreeTableTab.svelte @@ -145,6 +145,7 @@ gridCoreComponent={FreeTableGridCore} freeTableColumn showMacros + expandMacros onRunMacro={handleRunMacro} isDynamicStructure={$modelState.value?.structure?.__isDynamicStructure} {display}