mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-26 20:16:00 +00:00
filter behaviour WIP
This commit is contained in:
@@ -10,7 +10,7 @@ import {
|
||||
referenceIsConnecting,
|
||||
mergeSelectsFromDesigner,
|
||||
findQuerySource,
|
||||
findDesignerFilterType,
|
||||
findDesignerFilterBehaviour,
|
||||
} from './designerTools';
|
||||
import { parseFilter } from 'dbgate-filterparser';
|
||||
|
||||
@@ -83,7 +83,7 @@ export class DesignerQueryDumper {
|
||||
}
|
||||
|
||||
try {
|
||||
const condition = parseFilter(column[filterField], findDesignerFilterType(column, this.designer));
|
||||
const condition = parseFilter(column[filterField], findDesignerFilterBehaviour(column, this.designer));
|
||||
if (condition) {
|
||||
conditions.push(
|
||||
_.cloneDeepWith(condition, expr => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { presetDarkPalettes, presetPalettes } from '@ant-design/colors';
|
||||
import { filterName } from 'dbgate-tools';
|
||||
import { filterName, stringFilterBehaviour } from 'dbgate-tools';
|
||||
|
||||
import { tick } from 'svelte';
|
||||
import { createDatabaseObjectMenu } from '../appobj/DatabaseObjectAppObject.svelte';
|
||||
@@ -303,7 +303,7 @@
|
||||
</div>
|
||||
{#if settings?.getMutliColumnFilter && settings?.setMutliColumnFilter}
|
||||
<DataFilterControl
|
||||
filterType="string"
|
||||
filterBehaviour={stringFilterBehaviour}
|
||||
filter={settings?.getMutliColumnFilter(designerId)}
|
||||
setFilter={value => settings?.setMutliColumnFilter(designerId, value)}
|
||||
placeholder="Data filter"
|
||||
|
||||
@@ -5,7 +5,7 @@ import type { EngineDriver } from 'dbgate-types';
|
||||
import type { DesignerInfo, DesignerTableInfo, DesignerReferenceInfo, DesignerJoinType } from './types';
|
||||
import { DesignerComponentCreator } from './DesignerComponentCreator';
|
||||
import { DesignerQueryDumper } from './DesignerQueryDumper';
|
||||
import { getFilterType } from 'dbgate-filterparser';
|
||||
import { detectSqlFilterBehaviour } from 'dbgate-tools';
|
||||
|
||||
export function referenceIsConnecting(
|
||||
reference: DesignerReferenceInfo,
|
||||
@@ -133,13 +133,13 @@ export function isConnectedByReference(
|
||||
return array1 == array2;
|
||||
}
|
||||
|
||||
export function findDesignerFilterType({ designerId, columnName }, designer) {
|
||||
export function findDesignerFilterBehaviour({ designerId, columnName }, designer) {
|
||||
const table = (designer.tables || []).find(x => x.designerId == designerId);
|
||||
if (table) {
|
||||
const column = (table.columns || []).find(x => x.columnName == columnName);
|
||||
if (column) {
|
||||
const { dataType } = column;
|
||||
return getFilterType(dataType);
|
||||
return detectSqlFilterBehaviour(dataType);
|
||||
}
|
||||
}
|
||||
return 'string';
|
||||
|
||||
Reference in New Issue
Block a user