mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-30 15:03:57 +00:00
Allow disable/re-enable multicolumn filter #1174
This commit is contained in:
@@ -32,6 +32,7 @@ export interface GridConfig extends GridConfigColumns {
|
|||||||
multiColumnFilter?: string;
|
multiColumnFilter?: string;
|
||||||
searchInColumns?: string;
|
searchInColumns?: string;
|
||||||
disabledFilterColumns: string[];
|
disabledFilterColumns: string[];
|
||||||
|
disabledMultiColumnFilter?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface GridCache {
|
export interface GridCache {
|
||||||
|
|||||||
@@ -260,7 +260,7 @@ export abstract class GridDisplay {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.baseTableOrView && this.config.multiColumnFilter) {
|
if (this.baseTableOrView && this.config.multiColumnFilter && !this.isMultiColumnFilterDisabled()) {
|
||||||
const orCondition: CompoudCondition = {
|
const orCondition: CompoudCondition = {
|
||||||
conditionType: 'or',
|
conditionType: 'or',
|
||||||
conditions: [],
|
conditions: [],
|
||||||
@@ -427,6 +427,7 @@ export abstract class GridDisplay {
|
|||||||
...cfg,
|
...cfg,
|
||||||
multiColumnFilter: value,
|
multiColumnFilter: value,
|
||||||
formViewRecordNumber: 0,
|
formViewRecordNumber: 0,
|
||||||
|
disabledMultiColumnFilter: false,
|
||||||
}));
|
}));
|
||||||
this.reload();
|
this.reload();
|
||||||
}
|
}
|
||||||
@@ -485,6 +486,18 @@ export abstract class GridDisplay {
|
|||||||
return this.config.disabledFilterColumns.includes(uniqueName);
|
return this.config.disabledFilterColumns.includes(uniqueName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
toggleMultiColumnFilterEnabled() {
|
||||||
|
this.setConfig(cfg => ({
|
||||||
|
...cfg,
|
||||||
|
disabledMultiColumnFilter: !cfg.disabledMultiColumnFilter,
|
||||||
|
}));
|
||||||
|
this.reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
isMultiColumnFilterDisabled() {
|
||||||
|
return this.config.disabledMultiColumnFilter;
|
||||||
|
}
|
||||||
|
|
||||||
setSort(uniqueName, order) {
|
setSort(uniqueName, order) {
|
||||||
this.setConfig(cfg => ({
|
this.setConfig(cfg => ({
|
||||||
...cfg,
|
...cfg,
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
import keycodes from '../utility/keycodes';
|
import keycodes from '../utility/keycodes';
|
||||||
import FormViewFilterColumn from './FormViewFilterColumn.svelte';
|
import FormViewFilterColumn from './FormViewFilterColumn.svelte';
|
||||||
import { stringFilterBehaviour } from 'dbgate-tools';
|
import { stringFilterBehaviour } from 'dbgate-tools';
|
||||||
|
import CheckboxField from '../forms/CheckboxField.svelte';
|
||||||
// import PrimaryKeyFilterEditor from './PrimaryKeyFilterEditor.svelte';
|
// import PrimaryKeyFilterEditor from './PrimaryKeyFilterEditor.svelte';
|
||||||
|
|
||||||
export let managerSize;
|
export let managerSize;
|
||||||
@@ -64,6 +65,13 @@
|
|||||||
<div class="space-between">
|
<div class="space-between">
|
||||||
<span>Multi column filter</span>
|
<span>Multi column filter</span>
|
||||||
{#if multiColumnFilter}
|
{#if multiColumnFilter}
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<CheckboxField
|
||||||
|
checked={!display.isMultiColumnFilterDisabled()}
|
||||||
|
on:change={() => {
|
||||||
|
display.toggleMultiColumnFilterEnabled();
|
||||||
|
}}
|
||||||
|
/>
|
||||||
<InlineButton
|
<InlineButton
|
||||||
square
|
square
|
||||||
narrow
|
narrow
|
||||||
@@ -73,6 +81,7 @@
|
|||||||
>
|
>
|
||||||
<FontIcon icon="icon close" />
|
<FontIcon icon="icon close" />
|
||||||
</InlineButton>
|
</InlineButton>
|
||||||
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -85,6 +94,7 @@
|
|||||||
{database}
|
{database}
|
||||||
{schemaName}
|
{schemaName}
|
||||||
{pureName}
|
{pureName}
|
||||||
|
filterDisabled={display.isMultiColumnFilterDisabled()}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
Reference in New Issue
Block a user