query result - use editor behaviour from driver

This commit is contained in:
SPRINX0\prochazka
2024-10-08 15:12:12 +02:00
parent 6806620d90
commit beaff158cc
4 changed files with 27 additions and 19 deletions

View File

@@ -3,6 +3,7 @@ import { GridDisplay, ChangeCacheFunc, ChangeConfigFunc } from './GridDisplay';
import { GridConfig, GridCache } from './GridConfig'; import { GridConfig, GridCache } from './GridConfig';
import { analyseCollectionDisplayColumns } from './CollectionGridDisplay'; import { analyseCollectionDisplayColumns } from './CollectionGridDisplay';
import { evalFilterBehaviour } from 'dbgate-tools'; import { evalFilterBehaviour } from 'dbgate-tools';
import { EngineDriver } from 'dbgate-types';
export class JslGridDisplay extends GridDisplay { export class JslGridDisplay extends GridDisplay {
constructor( constructor(
@@ -15,9 +16,10 @@ export class JslGridDisplay extends GridDisplay {
rows: any, rows: any,
isDynamicStructure: boolean, isDynamicStructure: boolean,
supportsReload: boolean, supportsReload: boolean,
editable: boolean = false editable: boolean = false,
driver: EngineDriver = null
) { ) {
super(config, setConfig, cache, setCache, null); super(config, setConfig, cache, setCache, driver);
this.filterable = true; this.filterable = true;
this.sortable = true; this.sortable = true;

View File

@@ -20,6 +20,8 @@
export let allowChangeChangeSetStructure = false; export let allowChangeChangeSetStructure = false;
export let infoLoadCounter = 0; export let infoLoadCounter = 0;
export let driver;
let loadedRows; let loadedRows;
let infoCounter = 0; let infoCounter = 0;
@@ -68,7 +70,8 @@
loadedRows, loadedRows,
infoUsed?.__isDynamicStructure, infoUsed?.__isDynamicStructure,
supportsReload, supportsReload,
!!changeSetState !!changeSetState,
driver
); );
function handleSetLoadedRows(rows) { function handleSetLoadedRows(rows) {
@@ -99,22 +102,24 @@
preprocessLoadedRow={changeSetState?.value?.dataUpdateCommands preprocessLoadedRow={changeSetState?.value?.dataUpdateCommands
? row => processJsonDataUpdateCommands(row, changeSetState?.value?.dataUpdateCommands) ? row => processJsonDataUpdateCommands(row, changeSetState?.value?.dataUpdateCommands)
: null} : null}
dataEditorTypesBehaviourOverride={{ dataEditorTypesBehaviourOverride={driver
parseJsonNull: true, ? null
parseJsonBoolean: true, : {
parseNumber: true, parseJsonNull: true,
parseJsonArray: true, parseJsonBoolean: true,
parseJsonObject: true, parseNumber: true,
parseJsonArray: true,
parseJsonObject: true,
explicitDataType: true, explicitDataType: true,
supportNumberType: true, supportNumberType: true,
supportStringType: true, supportStringType: true,
supportBooleanType: true, supportBooleanType: true,
supportNullType: true, supportNullType: true,
supportJsonType: true, supportJsonType: true,
supportFieldRemoval: true, supportFieldRemoval: true,
}} }}
/> />
{/key} {/key}

View File

@@ -13,6 +13,7 @@
export let tabs = []; export let tabs = [];
export let sessionId; export let sessionId;
export let executeNumber; export let executeNumber;
export let driver;
export let resultCount; export let resultCount;
@@ -54,7 +55,7 @@
label: `Result ${index + 1}`, label: `Result ${index + 1}`,
isResult: true, isResult: true,
component: JslDataGrid, component: JslDataGrid,
props: { jslid: info.jslid }, props: { jslid: info.jslid, driver },
}))), }))),
]; ];

View File

@@ -398,7 +398,7 @@
{/if} {/if}
</svelte:fragment> </svelte:fragment>
<svelte:fragment slot="2"> <svelte:fragment slot="2">
<ResultTabs tabs={[{ label: 'Messages', slot: 0 }]} {sessionId} {executeNumber} bind:resultCount> <ResultTabs tabs={[{ label: 'Messages', slot: 0 }]} {sessionId} {executeNumber} bind:resultCount {driver}>
<svelte:fragment slot="0"> <svelte:fragment slot="0">
<SocketMessageView <SocketMessageView
eventName={sessionId ? `session-info-${sessionId}` : null} eventName={sessionId ? `session-info-${sessionId}` : null}