diff --git a/packages/datalib/src/GridConfig.ts b/packages/datalib/src/GridConfig.ts index f0f2d96e9..ff94e31e5 100644 --- a/packages/datalib/src/GridConfig.ts +++ b/packages/datalib/src/GridConfig.ts @@ -33,6 +33,7 @@ export interface GridConfig extends GridConfigColumns { formViewKey?: { [uniqueName: string]: string }; formViewKeyRequested?: { [uniqueName: string]: string }; formFilterColumns: string[]; + formColumnFilterText?: string; } export interface GridCache { diff --git a/packages/web/src/formview/FormView.svelte b/packages/web/src/formview/FormView.svelte index 79de2c0ef..ff7ce8103 100644 --- a/packages/web/src/formview/FormView.svelte +++ b/packages/web/src/formview/FormView.svelte @@ -152,9 +152,12 @@ function isDataCell(cell) { return cell[1] % 2 == 1; } +
@@ -594,4 +615,5 @@ right: 40px; bottom: 20px; } + diff --git a/packages/web/src/formview/FormViewFilters.svelte b/packages/web/src/formview/FormViewFilters.svelte index 37795bcb5..217868f84 100644 --- a/packages/web/src/formview/FormViewFilters.svelte +++ b/packages/web/src/formview/FormViewFilters.svelte @@ -2,19 +2,46 @@ import _ from 'lodash'; import ManagerInnerContainer from '../elements/ManagerInnerContainer.svelte'; +import keycodes from '../utility/keycodes'; import FormViewFilterColumn from './FormViewFilterColumn.svelte'; import PrimaryKeyFilterEditor from './PrimaryKeyFilterEditor.svelte'; export let managerSize; export let formDisplay; + export let setConfig; $: baseTable = formDisplay?.baseTable; $: formFilterColumns = formDisplay?.config?.formFilterColumns; $: filters = formDisplay?.config?.filters; $: allFilterNames = _.union(_.keys(filters || {}), formFilterColumns || []); + +
+
Column filter
+
+ { + if (e.keyCode == keycodes.escape) { + setConfig(x => ({ + ...x, + formColumnFilterText: '', + })); + } + }} + on:input={e => + setConfig(x => ({ + ...x, + // @ts-ignore + formColumnFilterText: e.target.value, + }))} + /> +
+
+ {#if baseTable?.primaryKey} {#each baseTable.primaryKey.columns as col}