diff --git a/packages/web/src/appobj/ColumnAppObject.svelte b/packages/web/src/appobj/ColumnAppObject.svelte
index 5f2aae81c..e53d78657 100644
--- a/packages/web/src/appobj/ColumnAppObject.svelte
+++ b/packages/web/src/appobj/ColumnAppObject.svelte
@@ -2,7 +2,7 @@
export const extractKey = ({ columnName }) => columnName;
export const createMatcher =
- (filter, cfg = DEFAULT_SEARCH_SETTINGS) =>
+ (filter, cfg = DEFAULT_OBJECT_SEARCH_SETTINGS) =>
data => {
const filterArgs = [];
if (cfg.columnName) filterArgs.push(data.columnName);
@@ -21,7 +21,7 @@
import { renameDatabaseObjectDialog, alterDatabaseDialog } from '../utility/alterDatabaseTools';
import AppObjectCore from './AppObjectCore.svelte';
- import { DEFAULT_SEARCH_SETTINGS } from '../stores';
+ import { DEFAULT_OBJECT_SEARCH_SETTINGS } from '../stores';
import { filterName } from 'dbgate-tools';
export let data;
diff --git a/packages/web/src/appobj/ConnectionAppObject.svelte b/packages/web/src/appobj/ConnectionAppObject.svelte
index f19616fd3..b0f2ded4a 100644
--- a/packages/web/src/appobj/ConnectionAppObject.svelte
+++ b/packages/web/src/appobj/ConnectionAppObject.svelte
@@ -1,14 +1,24 @@
diff --git a/packages/web/src/buttons/DropDownButton.svelte b/packages/web/src/buttons/DropDownButton.svelte
index f60b0d53a..07b339022 100644
--- a/packages/web/src/buttons/DropDownButton.svelte
+++ b/packages/web/src/buttons/DropDownButton.svelte
@@ -8,12 +8,13 @@
export let icon = 'icon chevron-down';
export let menu;
export let narrow = false;
+ export let square = true;
export let disabled = false;
let domButton;
function handleClick() {
if (disabled) return;
-
+
const rect = domButton.getBoundingClientRect();
const left = rect.left;
const top = rect.bottom;
@@ -21,6 +22,6 @@
}
-
+
diff --git a/packages/web/src/stores.ts b/packages/web/src/stores.ts
index dd60b6b53..ac1410a36 100644
--- a/packages/web/src/stores.ts
+++ b/packages/web/src/stores.ts
@@ -161,7 +161,7 @@ export const lastUsedDefaultActions = writableWithStorage({}, 'lastUsedDefaultAc
export const selectedDatabaseObjectAppObject = writable(null);
export const focusedConnectionOrDatabase = writable<{ conid: string; database?: string; connection: any }>(null);
-export const DEFAULT_SEARCH_SETTINGS = {
+export const DEFAULT_OBJECT_SEARCH_SETTINGS = {
collectionName: true,
schemaName: false,
tableName: true,
@@ -175,11 +175,24 @@ export const DEFAULT_SEARCH_SETTINGS = {
tableEngine: false,
};
+export const DEFAULT_CONNECTION_SEARCH_SETTINGS = {
+ displayName: true,
+ server: true,
+ user: false,
+ engine: false,
+ database: true,
+};
+
export const databaseObjectAppObjectSearchSettings = writableWithStorage(
- DEFAULT_SEARCH_SETTINGS,
+ DEFAULT_OBJECT_SEARCH_SETTINGS,
'databaseObjectAppObjectSearchSettings'
);
+export const connectionAppObjectSearchSettings = writableWithStorage(
+ DEFAULT_CONNECTION_SEARCH_SETTINGS,
+ 'connectionAppObjectSearchSettings'
+);
+
export const currentThemeDefinition = derived([currentTheme, extensions], ([$currentTheme, $extensions]) =>
$extensions.themes.find(x => x.themeClassName == $currentTheme)
);
@@ -379,10 +392,18 @@ lastUsedDefaultActions.subscribe(value => {
});
export const getLastUsedDefaultActions = () => lastUsedDefaultActionsValue;
-let databaseObjectAppObjectSearchSettingsValue: typeof DEFAULT_SEARCH_SETTINGS = {
- ...DEFAULT_SEARCH_SETTINGS,
+let databaseObjectAppObjectSearchSettingsValue: typeof DEFAULT_OBJECT_SEARCH_SETTINGS = {
+ ...DEFAULT_OBJECT_SEARCH_SETTINGS,
};
databaseObjectAppObjectSearchSettings.subscribe(value => {
databaseObjectAppObjectSearchSettingsValue = value;
});
export const getDatabaseObjectAppObjectSearchSettings = () => databaseObjectAppObjectSearchSettingsValue;
+
+let connectionAppObjectSearchSettingsValue: typeof DEFAULT_CONNECTION_SEARCH_SETTINGS = {
+ ...DEFAULT_CONNECTION_SEARCH_SETTINGS,
+};
+connectionAppObjectSearchSettings.subscribe(value => {
+ connectionAppObjectSearchSettingsValue = value;
+});
+export const getConnectionAppObjectSearchSettings = () => connectionAppObjectSearchSettingsValue;
diff --git a/packages/web/src/widgets/ConnectionList.svelte b/packages/web/src/widgets/ConnectionList.svelte
index 1a6de188c..62ca5887d 100644
--- a/packages/web/src/widgets/ConnectionList.svelte
+++ b/packages/web/src/widgets/ConnectionList.svelte
@@ -20,6 +20,8 @@
getFocusedConnectionOrDatabase,
currentDatabase,
getCurrentConfig,
+ connectionAppObjectSearchSettings,
+ getConnectionAppObjectSearchSettings,
} from '../stores';
import runCommand from '../commands/runCommand';
import { filterName, getConnectionLabel } from 'dbgate-tools';
@@ -39,6 +41,7 @@
import openNewTab from '../utility/openNewTab';
import { openConnection } from '../appobj/ConnectionAppObject.svelte';
import { getConnectionClickActionSetting } from '../settings/settingsTools';
+ import DropDownButton from '../buttons/DropDownButton.svelte';
const connections = useConnectionList();
const serverStatus = useServerStatus();
@@ -182,6 +185,20 @@
{ text: 'Delete', onClick: handleDelete },
];
}
+
+ function createSearchMenu() {
+ const res = [];
+ res.push({ label: 'Display name', switchValue: 'displayName' });
+ res.push({ label: 'Server', switchValue: 'server' });
+ res.push({ label: 'User', switchValue: 'user' });
+ res.push({ label: 'Database engine', switchValue: 'engine' });
+ res.push({ label: 'Database name', switchValue: 'database' });
+ return res.map(item => ({
+ ...item,
+ switchStore: connectionAppObjectSearchSettings,
+ switchStoreGetter: getConnectionAppObjectSearchSettings,
+ }));
+ }
@@ -194,6 +211,7 @@
}}
/>
+
{#if $commandsCustomized['new.connection']?.enabled}
runCommand('new.connection')}
@@ -289,6 +307,7 @@
...passProps,
connectionColorFactory: $connectionColorFactory,
showPinnedInsteadOfUnpin: true,
+ searchSettings: $connectionAppObjectSearchSettings,
}}
getIsExpanded={data => $expandedConnections.includes(data._id) && !data.singleDatabase}
setIsExpanded={(data, value) => {
@@ -316,6 +335,7 @@
passProps={{
connectionColorFactory: $connectionColorFactory,
showPinnedInsteadOfUnpin: true,
+ searchSettings: $connectionAppObjectSearchSettings,
}}
getIsExpanded={data => $expandedConnections.includes(data._id) && !data.singleDatabase}
setIsExpanded={(data, value) => {
diff --git a/packages/web/src/widgets/SqlObjectList.svelte b/packages/web/src/widgets/SqlObjectList.svelte
index 7403ffe56..92e2b1622 100644
--- a/packages/web/src/widgets/SqlObjectList.svelte
+++ b/packages/web/src/widgets/SqlObjectList.svelte
@@ -130,7 +130,7 @@
function createSearchMenu() {
const res = [];
if (driver?.databaseEngineTypes?.includes('document')) {
- res.push({ label: 'Collection names' });
+ res.push({ label: 'Collection names', switchValue: 'collectionName' });
}
if (driver?.databaseEngineTypes?.includes('sql')) {
res.push({ label: 'Schema name', switchValue: 'schemaName' });
@@ -216,7 +216,7 @@
}}
/>
-
+
{#if !filter}
{/if}