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}