JSON filters view

This commit is contained in:
Jan Prochazka
2021-04-05 09:29:01 +02:00
parent 853eee6701
commit ff52430e1e
4 changed files with 62 additions and 0 deletions

View File

@@ -25,6 +25,7 @@
import ColumnManager from './ColumnManager.svelte';
import ReferenceManager from './ReferenceManager.svelte';
import FreeTableColumnEditor from '../freetable/FreeTableColumnEditor.svelte';
import JsonViewFilters from '../jsonview/JsonViewFilters.svelte';
export let config;
export let gridCoreComponent;
@@ -85,6 +86,10 @@
<ColumnManager {...$$props} {managerSize} />
</WidgetColumnBarItem>
<WidgetColumnBarItem title="Filters" name="jsonFilters" height="30%" skip={!isDynamicStructure}>
<JsonViewFilters {...$$props} {managerSize} />
</WidgetColumnBarItem>
<WidgetColumnBarItem title="Columns" name="freeColumns" height="40%" skip={!freeTableColumn}>
<FreeTableColumnEditor {...$$props} {managerSize} />
</WidgetColumnBarItem>

View File

@@ -0,0 +1,30 @@
<script lang="ts">
import DataFilterControl from '../datagrid/DataFilterControl.svelte';
import ColumnLabel from '../elements/ColumnLabel.svelte';
import InlineButton from '../elements/InlineButton.svelte';
import FontIcon from '../icons/FontIcon.svelte';
export let uniqueName;
export let display;
export let filters;
</script>
<div class="m-1">
<div class="space-between">
<ColumnLabel columnName={uniqueName} />
<InlineButton
square
on:click={() => {
display.removeFilter(uniqueName);
}}
>
<FontIcon icon="icon delete" />
</InlineButton>
</div>
<DataFilterControl
filterType="mongo"
filter={filters[uniqueName]}
setFilter={value => display.setFilter(uniqueName, value)}
/>
</div>

View File

@@ -0,0 +1,19 @@
<script lang="ts">
import _ from 'lodash';
import ManagerInnerContainer from '../elements/ManagerInnerContainer.svelte';
import JsonViewFilterColumn from './JsonViewFilterColumn.svelte';
export let managerSize;
export let display;
$: filters = display?.config?.filters;
$: allFilterNames = _.keys(filters || {});
</script>
<ManagerInnerContainer width={managerSize}>
{#each allFilterNames as uniqueName}
<JsonViewFilterColumn {uniqueName} {display} {filters} />
{/each}
</ManagerInnerContainer>