multi column condition in perspectives

This commit is contained in:
Jan Prochazka
2023-02-26 16:48:32 +01:00
parent 7c03d31b84
commit a2043b237f
5 changed files with 91 additions and 4 deletions

View File

@@ -40,6 +40,8 @@
export let columnName = null;
export let uniqueName = null;
export let placeholder = 'Filter';
let value;
let isError;
let isOk;
@@ -318,7 +320,7 @@
on:paste={handlePaste}
class:isError
class:isOk
placeholder="Filter"
{placeholder}
/>
{#if customCommandIcon && onCustomCommand}
<InlineButton on:click={onCustomCommand} title={customCommandTooltip} narrow square>

View File

@@ -4,6 +4,7 @@
import { tick } from 'svelte';
import { createDatabaseObjectMenu } from '../appobj/DatabaseObjectAppObject.svelte';
import DataFilterControl from '../datagrid/DataFilterControl.svelte';
import CheckboxField from '../forms/CheckboxField.svelte';
import FontIcon from '../icons/FontIcon.svelte';
@@ -300,6 +301,15 @@
</div>
{/if}
</div>
{#if settings?.getMutliColumnFilter && settings?.setMutliColumnFilter}
<DataFilterControl
filterType="string"
filter={settings?.getMutliColumnFilter(designerId)}
setFilter={value => settings?.setMutliColumnFilter(designerId, value)}
placeholder="Data filter"
/>
{/if}
<div class="columns" on:scroll={() => tick().then(onMoveReferences)} class:scroll={settings?.allowScrollColumns}>
{#each flatColumns || [] as column (column.columnName)}
<ColumnLine

View File

@@ -334,6 +334,20 @@
toggleExpandedColumn: (column, value) => column.toggleExpanded(value),
getColumnDisplayName: column => column.shortName || column.columnName,
getParentColumnName: getPerspectiveParentColumnName,
getMutliColumnFilter: designerId => config.nodes.find(x => x.designerId == designerId).multiColumnFilter,
setMutliColumnFilter: (designerId, multiColumnFilter) => {
setConfig(cfg => ({
...cfg,
nodes: cfg.nodes.map(node =>
node.designerId == designerId
? {
...node,
multiColumnFilter,
}
: node
),
}));
},
}}
referenceComponent={QueryDesignerReference}
value={createDesignerModel(config, dbInfos, dataPatterns)}