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,
+ }));
+ });
+}