diff --git a/packages/web/src/datagrid/DataGrid.svelte b/packages/web/src/datagrid/DataGrid.svelte index c020f7c09..d22353dba 100644 --- a/packages/web/src/datagrid/DataGrid.svelte +++ b/packages/web/src/datagrid/DataGrid.svelte @@ -63,7 +63,6 @@ import WidgetColumnBarItem from '../widgets/WidgetColumnBarItem.svelte'; import ColumnManager from './ColumnManager.svelte'; import ReferenceManager from './ReferenceManager.svelte'; - import JsonViewFilters from '../jsonview/JsonViewFilters.svelte'; import createActivator, { getActiveComponent } from '../utility/createActivator'; import _ from 'lodash'; import registerCommand from '../commands/registerCommand'; @@ -171,25 +170,19 @@ - - - - - - - - - + x.uniqueName == uniqueName) + : display.findColumn(uniqueName); + + function computeFilterType(display, column, isFormView, isDynamicStructure, useEvalFilters) { + if (useEvalFilters) return 'eval'; + if (isDynamicStructure) return 'mongo'; + + if (column) { + return column.filterType || getFilterType(column.dataType); + } + return 'string'; + } {#if column} @@ -26,16 +44,16 @@ square narrow on:click={() => { - display.removeFilter(column.uniqueName); + display.removeFilter(uniqueName); }} > display.setFilter(column.uniqueName, value)} + filterType={computeFilterType(display, uniqueName, isFormView, isDynamicStructure, useEvalFilters)} + filter={filters[uniqueName]} + setFilter={value => display.setFilter(uniqueName, value)} {driver} {conid} {database} diff --git a/packages/web/src/formview/FormViewFilters.svelte b/packages/web/src/formview/FormViewFilters.svelte index 609247d72..c2c38a989 100644 --- a/packages/web/src/formview/FormViewFilters.svelte +++ b/packages/web/src/formview/FormViewFilters.svelte @@ -16,6 +16,10 @@ export let schemaName; export let pureName; + export let isDynamicStructure; + export let useEvalFilters; + export let isFormView; + $: baseTable = display?.baseTable; $: formFilterColumns = display?.config?.formFilterColumns; $: filters = display?.config?.filters; @@ -23,34 +27,39 @@ $: allFilterNames = _.union(_.keys(filters || {}), formFilterColumns || []); -
-
Column filter
-
- { - if (e.keyCode == keycodes.escape) { +{#if isFormView} +
+
Column filter
+
+ { + if (e.keyCode == keycodes.escape) { + setConfig(x => ({ + ...x, + formColumnFilterText: '', + })); + } + }} + on:input={e => setConfig(x => ({ ...x, - formColumnFilterText: '', - })); - } - }} - on:input={e => - setConfig(x => ({ - ...x, - // @ts-ignore - formColumnFilterText: e.target.value, - }))} - /> + // @ts-ignore + formColumnFilterText: e.target.value, + }))} + /> +
-
+{/if} {#each allFilterNames as uniqueName} x.uniqueName == uniqueName)} + {isDynamicStructure} + {useEvalFilters} + {isFormView} + {uniqueName} {display} {filters} {driver} diff --git a/packages/web/src/jsonview/JsonViewFilterColumn.svelte b/packages/web/src/jsonview/JsonViewFilterColumn.svelte deleted file mode 100644 index 922cb493b..000000000 --- a/packages/web/src/jsonview/JsonViewFilterColumn.svelte +++ /dev/null @@ -1,44 +0,0 @@ - - -
-
- - { - display.removeFilter(uniqueName); - }} - > - - -
- display.setFilter(uniqueName, value)} - /> -
diff --git a/packages/web/src/jsonview/JsonViewFilters.svelte b/packages/web/src/jsonview/JsonViewFilters.svelte deleted file mode 100644 index 807e81118..000000000 --- a/packages/web/src/jsonview/JsonViewFilters.svelte +++ /dev/null @@ -1,21 +0,0 @@ - - - - {#each allFilterNames as uniqueName} - - {/each} - diff --git a/packages/web/src/tabs/CollectionDataTab.svelte b/packages/web/src/tabs/CollectionDataTab.svelte index 113ea1442..f6534408f 100644 --- a/packages/web/src/tabs/CollectionDataTab.svelte +++ b/packages/web/src/tabs/CollectionDataTab.svelte @@ -36,7 +36,7 @@ import CollectionDataGridCore from '../datagrid/CollectionDataGridCore.svelte'; import { useCollectionInfo, useConnectionInfo } from '../utility/metadataLoaders'; import { extensions } from '../stores'; - import CollectionJsonView from '../jsonview/CollectionJsonView.svelte'; + import CollectionJsonView from '../formview/CollectionJsonView.svelte'; import createActivator, { getActiveComponent } from '../utility/createActivator'; import { showModal } from '../modals/modalTools'; import ErrorMessageModal from '../modals/ErrorMessageModal.svelte';