diff --git a/packages/web/src/appobj/ConnectionAppObject.svelte b/packages/web/src/appobj/ConnectionAppObject.svelte index ca77f02f1..b21604e85 100644 --- a/packages/web/src/appobj/ConnectionAppObject.svelte +++ b/packages/web/src/appobj/ConnectionAppObject.svelte @@ -11,6 +11,22 @@ const databases = getLocalStorage(`database_list_${_id}`) || []; return filterName(filter, ...databases.map(x => x.name)); }; + export function openConnection(connection) { + if (connection.singleDatabase) { + currentDatabase.set({ connection, name: connection.defaultDatabase }); + apiCall('database-connections/refresh', { + conid: connection._id, + database: connection.defaultDatabase, + keepOpen: true, + }); + } else { + openedConnections.update(x => _.uniq([...x, connection._id])); + apiCall('server-connections/refresh', { + conid: connection._id, + keepOpen: true, + }); + } + } @@ -93,11 +147,11 @@ label: 'General', component: ConnectionModalDriverFields, }, - (driver?.showConnectionTab('sshTunnel', $values)) && { + driver?.showConnectionTab('sshTunnel', $values) && { label: 'SSH Tunnel', component: ConnectionModalSshTunnelFields, }, - (driver?.showConnectionTab('ssl', $values)) && { + driver?.showConnectionTab('ssl', $values) && { label: 'SSL', component: ConnectionModalSslFields, }, @@ -111,7 +165,7 @@ {#if isTesting} {:else} - + {/if} diff --git a/packages/web/src/utility/openNewTab.ts b/packages/web/src/utility/openNewTab.ts index 5e652aeb4..7bf2452d7 100644 --- a/packages/web/src/utility/openNewTab.ts +++ b/packages/web/src/utility/openNewTab.ts @@ -183,3 +183,14 @@ export function groupTabs(tabs: any[]) { return res; } + +export function closeTabWithNoHistory(tabid) { + openedTabs.update(tabs => { + const res = tabs.filter(x => x.tabid != tabid); + const selectedIndex = _.findLastIndex(res, x => x.closedTime == null); + return res.map((x, index) => ({ + ...x, + selected: index == selectedIndex, + })); + }); +}