diff --git a/packages/api/src/shell/jsonLinesWriter.js b/packages/api/src/shell/jsonLinesWriter.js index a559e3174..44c56e8fd 100644 --- a/packages/api/src/shell/jsonLinesWriter.js +++ b/packages/api/src/shell/jsonLinesWriter.js @@ -12,7 +12,9 @@ class StringifyStream extends stream.Transform { _transform(chunk, encoding, done) { let skip = false; if (!this.wasHeader) { - skip = (chunk.__isStreamHeader && !this.header) || (chunk.__isStreamHeader && chunk.__isDynamicStructure); + skip = + (chunk.__isStreamHeader && !this.header) || + (chunk.__isStreamHeader && chunk.__isDynamicStructure && !chunk.__keepDynamicStreamHeader); this.wasHeader = true; } if (!skip) { diff --git a/packages/web/src/datagrid/ColumnManager.svelte b/packages/web/src/datagrid/ColumnManager.svelte index b484472a7..b404084ce 100644 --- a/packages/web/src/datagrid/ColumnManager.svelte +++ b/packages/web/src/datagrid/ColumnManager.svelte @@ -149,11 +149,24 @@ { + dispatchChangeSet({ + type: 'set', + value: { + ...changeSetState?.value, + structure: { + ...display?.editableStructure, + __isDynamicStructure: e.detail == 'variable', + // __keepDynamicStreamHeader: true, + }, + }, + }); + }} /> {/if} @@ -174,7 +187,7 @@ }}>Add {/if} - {#if allowChangeChangeSetStructure} + {#if allowChangeChangeSetStructure && !isDynamicStructure} Add {/if} display.hideAllColumns()}>Hide @@ -199,6 +212,7 @@ {display} {column} {isJsonView} + {isDynamicStructure} {conid} {database} {tableInfo} diff --git a/packages/web/src/datagrid/ColumnManagerRow.svelte b/packages/web/src/datagrid/ColumnManagerRow.svelte index ea1524723..5ec95caf2 100644 --- a/packages/web/src/datagrid/ColumnManagerRow.svelte +++ b/packages/web/src/datagrid/ColumnManagerRow.svelte @@ -14,6 +14,7 @@ export let isSelected = false; export let conid; export let database; + export let isDynamicStructure; export let tableInfo; export let setTableInfo; @@ -82,7 +83,7 @@ - {#if allowChangeChangeSetStructure} + {#if allowChangeChangeSetStructure && !isDynamicStructure}
diff --git a/packages/web/src/datagrid/JslDataGrid.svelte b/packages/web/src/datagrid/JslDataGrid.svelte index b430151e8..a0fac397d 100644 --- a/packages/web/src/datagrid/JslDataGrid.svelte +++ b/packages/web/src/datagrid/JslDataGrid.svelte @@ -47,16 +47,19 @@ $: $effect; $: infoWithPairingId = generateTablePairingId($info); + $: infoUsed = (allowChangeChangeSetStructure && changeSetState?.value?.structure) || infoWithPairingId; + + // $: console.log('infoUsed', infoUsed); $: display = new JslGridDisplay( jslid, - (allowChangeChangeSetStructure && changeSetState?.value?.structure) || infoWithPairingId, + infoUsed, $config, config.update, $cache, cache.update, loadedRows, - $info?.__isDynamicStructure, + infoUsed?.__isDynamicStructure, supportsReload, !!changeSetState ); @@ -72,7 +75,7 @@ gridCoreComponent={JslDataGridCore} formViewComponent={JslFormView} bind:loadedRows - isDynamicStructure={$info?.__isDynamicStructure} + isDynamicStructure={!!infoUsed?.__isDynamicStructure} useEvalFilters {changeSetState} {changeSetStore}