From e9a8f3ee84f7491aa60de1ab69c4f4e85688695c Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Thu, 23 Jun 2022 09:08:43 +0200 Subject: [PATCH 1/2] ability to reset view when grid load error occurs --- packages/datalib/src/GridDisplay.ts | 7 ++++++- packages/web/src/datagrid/DataGridCore.svelte | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/datalib/src/GridDisplay.ts b/packages/datalib/src/GridDisplay.ts index 7f012324d..4a554813d 100644 --- a/packages/datalib/src/GridDisplay.ts +++ b/packages/datalib/src/GridDisplay.ts @@ -1,5 +1,5 @@ import _ from 'lodash'; -import { GridConfig, GridCache, GridConfigColumns, createGridCache, GroupFunc } from './GridConfig'; +import { GridConfig, GridCache, GridConfigColumns, createGridCache, GroupFunc, createGridConfig } from './GridConfig'; import { ForeignKeyInfo, TableInfo, @@ -445,6 +445,11 @@ export abstract class GridDisplay { this.reload(); } + resetConfig() { + this.setConfig(cfg => createGridConfig()); + this.reload(); + } + getChangeSetCondition(row) { if (!this.changeSetKeyFields) return null; return _.pick(row, this.changeSetKeyFields); diff --git a/packages/web/src/datagrid/DataGridCore.svelte b/packages/web/src/datagrid/DataGridCore.svelte index 62f1c4dcb..3614b500b 100644 --- a/packages/web/src/datagrid/DataGridCore.svelte +++ b/packages/web/src/datagrid/DataGridCore.svelte @@ -1485,7 +1485,11 @@ {#if !display || (!isDynamicStructure && (!columns || columns.length == 0))} {:else if errorMessage} - +
+ + display.clearFilters()} /> + display.resetConfig()} /> +
{:else if isDynamicStructure && isLoadedAll && grider?.rowCount == 0}
Date: Thu, 23 Jun 2022 09:52:41 +0200 Subject: [PATCH 2/2] filtering works for complex columns --- packages/datalib/src/GridDisplay.ts | 14 ++++---- packages/web/src/buttons/CommandButton.svelte | 33 +++++++++++++++++++ packages/web/src/datagrid/DataGridCore.svelte | 10 ++++-- .../web/src/datagrid/SqlDataGridCore.svelte | 1 + 4 files changed, 49 insertions(+), 9 deletions(-) create mode 100644 packages/web/src/buttons/CommandButton.svelte diff --git a/packages/datalib/src/GridDisplay.ts b/packages/datalib/src/GridDisplay.ts index 4a554813d..992b34a4f 100644 --- a/packages/datalib/src/GridDisplay.ts +++ b/packages/datalib/src/GridDisplay.ts @@ -194,12 +194,14 @@ export abstract class GridDisplay { if (condition) { conditions.push( _.cloneDeepWith(condition, (expr: Expression) => { - if (expr.exprType == 'placeholder') - return { - exprType: 'column', - columnName: column.columnName, - source: { alias: column.sourceAlias }, - }; + if (expr.exprType == 'placeholder') { + return this.createColumnExpression(column, { alias: column.sourceAlias }); + } + // return { + // exprType: 'column', + // columnName: column.columnName, + // source: { alias: column.sourceAlias }, + // }; }) ); } diff --git a/packages/web/src/buttons/CommandButton.svelte b/packages/web/src/buttons/CommandButton.svelte new file mode 100644 index 000000000..880e42020 --- /dev/null +++ b/packages/web/src/buttons/CommandButton.svelte @@ -0,0 +1,33 @@ + + + + +{#if cmd && (!hideDisabled || cmd.enabled)} + +{/if} diff --git a/packages/web/src/datagrid/DataGridCore.svelte b/packages/web/src/datagrid/DataGridCore.svelte index 3614b500b..a607a8e8b 100644 --- a/packages/web/src/datagrid/DataGridCore.svelte +++ b/packages/web/src/datagrid/DataGridCore.svelte @@ -344,7 +344,8 @@ export let collapsedLeftColumnStore; export let multipleGridsOnTab = false; export let tabControlHiddenTab = false; - export let onCustomGridRefresh; + export let onCustomGridRefresh = null; + export let onOpenQuery = null; export let useEvalFilters = false; export let jslid; // export let generalAllowSave = false; @@ -1488,8 +1489,11 @@
display.clearFilters()} /> - display.resetConfig()} /> -
+ display.resetConfig()} /> + {#if onOpenQuery} + + {/if} +
{:else if isDynamicStructure && isLoadedAll && grider?.rowCount == 0}