From 953f6da7d73dc1f00a2dcf1165c516bfc33dd046 Mon Sep 17 00:00:00 2001 From: Pavel Date: Sat, 13 Sep 2025 22:01:13 +0200 Subject: [PATCH] feat: allow pinning and unpinning single database connections --- .../web/src/appobj/ConnectionAppObject.svelte | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/packages/web/src/appobj/ConnectionAppObject.svelte b/packages/web/src/appobj/ConnectionAppObject.svelte index 6a2c99c6f..d99ccaf2a 100644 --- a/packages/web/src/appobj/ConnectionAppObject.svelte +++ b/packages/web/src/appobj/ConnectionAppObject.svelte @@ -122,6 +122,7 @@ getOpenedTabs, openedConnections, openedSingleDatabaseConnections, + pinnedDatabases, } from '../stores'; import { filterName, filterNameCompoud } from 'dbgate-tools'; import { showModal } from '../modals/modalTools'; @@ -152,6 +153,8 @@ let engineStatusIcon = null; let engineStatusTitle = null; + $: isPinned = data.singleDatabase && !!$pinnedDatabases.find(x => x?.connection?._id == data?._id); + const electron = getElectron(); const handleConnect = (disableExpand = false) => { @@ -455,6 +458,19 @@ .find(x => x.isNewQuery) .onClick(); }} + onPin={!isPinned && data.singleDatabase + ? () => + pinnedDatabases.update(list => [ + ...list, + { + name: data.defaultDatabase, + connection: data, + }, + ]) + : null} + onUnpin={isPinned && data.singleDatabase + ? () => pinnedDatabases.update(list => list.filter(x => x?.connection?._id != data?._id)) + : null} isChoosed={data._id == $focusedConnectionOrDatabase?.conid && (data.singleDatabase ? $focusedConnectionOrDatabase?.database == data.defaultDatabase