diff --git a/packages/datalib/src/PerspectiveConfig.ts b/packages/datalib/src/PerspectiveConfig.ts
index 0d8baad8d..aafebbcd2 100644
--- a/packages/datalib/src/PerspectiveConfig.ts
+++ b/packages/datalib/src/PerspectiveConfig.ts
@@ -1,3 +1,5 @@
+import { ForeignKeyInfo } from "dbgate-types";
+
export interface PerspectiveConfigColumns {
expandedColumns: string[];
checkedColumns: string[];
@@ -21,7 +23,9 @@ export interface PerspectiveCustomJoinConfig {
export interface PerspectiveFilterColumnInfo {
columnName: string;
filterType: string;
- tableName: string;
+ pureName: string;
+ schemaName: string;
+ foreignKey: ForeignKeyInfo;
}
export interface PerspectiveConfig extends PerspectiveConfigColumns {
filters: { [uniqueName: string]: string };
diff --git a/packages/datalib/src/PerspectiveTreeNode.ts b/packages/datalib/src/PerspectiveTreeNode.ts
index 06b6c8e42..6c7a0be6b 100644
--- a/packages/datalib/src/PerspectiveTreeNode.ts
+++ b/packages/datalib/src/PerspectiveTreeNode.ts
@@ -353,7 +353,9 @@ export class PerspectiveTableColumnNode extends PerspectiveTreeNode {
return {
columnName: this.columnName,
filterType: this.filterType,
- tableName: this.column.pureName,
+ pureName: this.column.pureName,
+ schemaName: this.column.schemaName,
+ foreignKey: this.foreignKey,
};
}
diff --git a/packages/filterparser/src/filterTool.ts b/packages/filterparser/src/filterTool.ts
index af50bf38b..552f37bfe 100644
--- a/packages/filterparser/src/filterTool.ts
+++ b/packages/filterparser/src/filterTool.ts
@@ -3,7 +3,7 @@ import moment from 'moment';
export type FilterMultipleValuesMode = 'is' | 'is_not' | 'contains' | 'begins' | 'ends';
-export function getFilterValueExpression(value, dataType) {
+export function getFilterValueExpression(value, dataType?) {
if (value == null) return 'NULL';
if (isTypeDateTime(dataType)) return moment(value).format('YYYY-MM-DD HH:mm:ss');
if (value === true) return 'TRUE';
diff --git a/packages/web/src/elements/ManagerInnerContainer.svelte b/packages/web/src/elements/ManagerInnerContainer.svelte
index fba5bf99c..503a72f2b 100644
--- a/packages/web/src/elements/ManagerInnerContainer.svelte
+++ b/packages/web/src/elements/ManagerInnerContainer.svelte
@@ -1,6 +1,6 @@
diff --git a/packages/web/src/perspectives/PerspectiveFilters.svelte b/packages/web/src/perspectives/PerspectiveFilters.svelte
index aa0dbb6e0..559649a16 100644
--- a/packages/web/src/perspectives/PerspectiveFilters.svelte
+++ b/packages/web/src/perspectives/PerspectiveFilters.svelte
@@ -4,13 +4,17 @@
import _ from 'lodash';
import ManagerInnerContainer from '../elements/ManagerInnerContainer.svelte';
-import FontIcon from '../icons/FontIcon.svelte';
+ import FontIcon from '../icons/FontIcon.svelte';
import PerspectiveFiltersColumn from './PerspectiveFiltersColumn.svelte';
export let managerSize;
export let config: PerspectiveConfig;
export let setConfig: ChangePerspectiveConfigFunc;
+ export let conid;
+ export let database;
+ export let driver;
+
$: allFilterNames = _.keys(config.filterInfos || {});
@@ -25,6 +29,9 @@ import FontIcon from '../icons/FontIcon.svelte';
setConfig(cfg => ({
diff --git a/packages/web/src/perspectives/PerspectiveFiltersColumn.svelte b/packages/web/src/perspectives/PerspectiveFiltersColumn.svelte
index c15a36183..a89cce50d 100644
--- a/packages/web/src/perspectives/PerspectiveFiltersColumn.svelte
+++ b/packages/web/src/perspectives/PerspectiveFiltersColumn.svelte
@@ -4,22 +4,39 @@
import ColumnLabel from '../elements/ColumnLabel.svelte';
import InlineButton from '../buttons/InlineButton.svelte';
import FontIcon from '../icons/FontIcon.svelte';
- import { getFilterType } from 'dbgate-filterparser';
+ import { getFilterType, getFilterValueExpression } from 'dbgate-filterparser';
import { PerspectiveFilterColumnInfo } from 'dbgate-datalib';
+ import { showModal } from '../modals/modalTools';
+ import DictionaryLookupModal from '../modals/DictionaryLookupModal.svelte';
+ import ValueLookupModal from '../modals/ValueLookupModal.svelte';
export let filterInfo: PerspectiveFilterColumnInfo;
export let filter;
export let onSetFilter;
export let onRemoveFilter;
+
+ export let conid;
+ export let database;
+ export let driver;
- {filterInfo.columnName} ({filterInfo.tableName})
+ {filterInfo.columnName} ({filterInfo.pureName})
-
+
diff --git a/packages/web/src/perspectives/PerspectiveView.svelte b/packages/web/src/perspectives/PerspectiveView.svelte
index 088d7f72a..7093b6889 100644
--- a/packages/web/src/perspectives/PerspectiveView.svelte
+++ b/packages/web/src/perspectives/PerspectiveView.svelte
@@ -58,6 +58,7 @@
export let database;
export let schemaName;
export let pureName;
+ export let driver;
export let config: PerspectiveConfig;
export let setConfig: ChangePerspectiveConfigFunc;
@@ -118,7 +119,7 @@
-
+
diff --git a/packages/web/src/tabs/PerspectiveTab.svelte b/packages/web/src/tabs/PerspectiveTab.svelte
index 3d45a0f1b..c23d2dda3 100644
--- a/packages/web/src/tabs/PerspectiveTab.svelte
+++ b/packages/web/src/tabs/PerspectiveTab.svelte
@@ -26,6 +26,9 @@
import createActivator, { getActiveComponent } from '../utility/createActivator';
import ToolStripContainer from '../buttons/ToolStripContainer.svelte';
import ToolStripCommandButton from '../buttons/ToolStripCommandButton.svelte';
+ import { findEngineDriver } from 'dbgate-tools';
+ import { useConnectionInfo } from '../utility/metadataLoaders';
+ import { extensions } from '../stores';
export let tabid;
export let conid;
@@ -35,6 +38,9 @@
export const activator = createActivator('PerspectiveTab', true);
+ $: connection = useConnectionInfo({ conid });
+ $: driver = findEngineDriver($connection, $extensions);
+
const config = usePerspectiveConfig(tabid);
const cache = new PerspectiveCache();
const loadedCounts = writable({});
@@ -51,6 +57,7 @@
{database}
{schemaName}
{pureName}
+ {driver}
config={$config}
setConfig={(value, reload) => {
if (reload) {