diff --git a/packages/api/src/proc/databaseConnectionProcess.js b/packages/api/src/proc/databaseConnectionProcess.js index 68a6252d6..3cd88c580 100644 --- a/packages/api/src/proc/databaseConnectionProcess.js +++ b/packages/api/src/proc/databaseConnectionProcess.js @@ -173,8 +173,8 @@ async function handleQueryData({ msgid, sql }, skipReadonlyCheck = false) { const driver = requireEngineDriver(storedConnection); try { if (!skipReadonlyCheck) ensureExecuteCustomScript(driver); - const res = await driver.query(systemConnection, sql); // console.log(sql); + const res = await driver.query(systemConnection, sql); process.send({ msgtype: 'response', msgid, ...res }); } catch (err) { process.send({ msgtype: 'response', msgid, errorMessage: err.message }); diff --git a/packages/web/src/datagrid/DataFilterControl.svelte b/packages/web/src/datagrid/DataFilterControl.svelte index 6a8dad17b..2d5bf7d4b 100644 --- a/packages/web/src/datagrid/DataFilterControl.svelte +++ b/packages/web/src/datagrid/DataFilterControl.svelte @@ -30,6 +30,8 @@ export let database = null; export let driver = null; export let jslid = null; + export let customCommandIcon = null; + export let onCustomCommand = null; export let pureName = null; export let schemaName = null; @@ -295,6 +297,11 @@ class:isOk placeholder="Filter" /> + {#if customCommandIcon && onCustomCommand} + + + + {/if} {#if conid && database && driver} {#if driver?.databaseEngineTypes?.includes('sql') && foreignKey} diff --git a/packages/web/src/perspectives/PerspectiveFilters.svelte b/packages/web/src/perspectives/PerspectiveFilters.svelte index 682428abb..184d1dda5 100644 --- a/packages/web/src/perspectives/PerspectiveFilters.svelte +++ b/packages/web/src/perspectives/PerspectiveFilters.svelte @@ -36,6 +36,9 @@ {conid} {database} {driver} + {node} + {config} + {setConfig} filter={config.filters[uniqueName]} onSetFilter={value => setConfig(cfg => ({ diff --git a/packages/web/src/perspectives/PerspectiveFiltersColumn.svelte b/packages/web/src/perspectives/PerspectiveFiltersColumn.svelte index a89cce50d..644fea366 100644 --- a/packages/web/src/perspectives/PerspectiveFiltersColumn.svelte +++ b/packages/web/src/perspectives/PerspectiveFiltersColumn.svelte @@ -5,7 +5,12 @@ import InlineButton from '../buttons/InlineButton.svelte'; import FontIcon from '../icons/FontIcon.svelte'; import { getFilterType, getFilterValueExpression } from 'dbgate-filterparser'; - import { PerspectiveFilterColumnInfo } from 'dbgate-datalib'; + import { + ChangePerspectiveConfigFunc, + PerspectiveConfig, + PerspectiveFilterColumnInfo, + PerspectiveTreeNode, + } from 'dbgate-datalib'; import { showModal } from '../modals/modalTools'; import DictionaryLookupModal from '../modals/DictionaryLookupModal.svelte'; import ValueLookupModal from '../modals/ValueLookupModal.svelte'; @@ -19,6 +24,39 @@ export let conid; export let database; export let driver; + + export let config: PerspectiveConfig; + export let setConfig: ChangePerspectiveConfigFunc; + + export let node: PerspectiveTreeNode; + + $: customCommandIcon = node?.parentNode?.supportsParentFilter + ? node?.parentNode?.isParentFilter + ? 'icon parent-filter' + : 'icon parent-filter-outline' + : null; + + function changeParentFilter() { + const tableNode = node?.parentNode; + if (!tableNode) return; + if (tableNode.isParentFilter) { + setConfig( + cfg => ({ + ...cfg, + parentFilters: cfg.parentFilters.filter(x => x.uniqueName != tableNode.uniqueName), + }), + true + ); + } else { + setConfig( + cfg => ({ + ...cfg, + parentFilters: [...(cfg.parentFilters || []), { uniqueName: tableNode.uniqueName }], + }), + true + ); + } + }
@@ -38,5 +76,7 @@ columnName={filterInfo.columnName} pureName={filterInfo.pureName} foreignKey={filterInfo.foreignKey} + {customCommandIcon} + onCustomCommand={customCommandIcon ? changeParentFilter : null} />
diff --git a/packages/web/src/perspectives/PerspectiveTable.svelte b/packages/web/src/perspectives/PerspectiveTable.svelte index dbb33496d..4b7000904 100644 --- a/packages/web/src/perspectives/PerspectiveTable.svelte +++ b/packages/web/src/perspectives/PerspectiveTable.svelte @@ -212,7 +212,6 @@ }); } - console.log('tableNode?.supportsParentFilter', tableNode?.supportsParentFilter); if (tableNode?.supportsParentFilter) { const isParentFilter = (config.parentFilters || []).find(x => x.uniqueName == tableNode.uniqueName); if (isParentFilter) {