diff --git a/CHANGELOG.md b/CHANGELOG.md
index d7d33fc2f..552650bf7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,6 +19,8 @@ Builds:
- FIXED: Analysing of foreign keys in Postgres and MS SQL, when the same FKS are used across different schemas
- ADDED: Support of views, procedures, functions to Oracle. Added integration tests for Oracle
- ADDED: Display "No rows" message, quick add new row
+- ADDED: Choose default database from list
+- ADDED: Default database is automatically selected on connect
### 6.0.0
- ADDED: Order or filter the indexes for huge tables #922
diff --git a/packages/web/src/settings/ConnectionDriverFields.svelte b/packages/web/src/settings/ConnectionDriverFields.svelte
index b88aaf147..f92cc35a2 100644
--- a/packages/web/src/settings/ConnectionDriverFields.svelte
+++ b/packages/web/src/settings/ConnectionDriverFields.svelte
@@ -16,8 +16,10 @@
import FormColorField from '../forms/FormColorField.svelte';
import FontIcon from '../icons/FontIcon.svelte';
import FormDropDownTextField from '../forms/FormDropDownTextField.svelte';
+ import { getConnectionLabel } from 'dbgate-tools';
export let getDatabaseList;
+ export let currentConnection;
const { values, setFieldValue } = getFormContext();
const electron = getElectron();
@@ -393,6 +395,7 @@
disabled={isConnected}
data-testid="ConnectionDriverFields_defaultDatabase"
asyncMenu={createDatabasesMenu}
+ placeholder="(not selected - optional)"
/>
{/if}
@@ -423,6 +426,7 @@
templateProps={{ noMargin: true }}
disabled={isConnected}
data-testid="ConnectionDriverFields_displayName"
+ placeholder={getConnectionLabel(currentConnection)}
/>
diff --git a/packages/web/src/tabs/ConnectionTab.svelte b/packages/web/src/tabs/ConnectionTab.svelte
index ed9c4ea77..df6616a23 100644
--- a/packages/web/src/tabs/ConnectionTab.svelte
+++ b/packages/web/src/tabs/ConnectionTab.svelte
@@ -81,6 +81,10 @@
}
function getCurrentConnection() {
+ return getCurrentConnectionCore($values, driver);
+ }
+
+ function getCurrentConnectionCore(values, driver) {
const allProps = [
'databaseFile',
'useDatabaseUrl',
@@ -95,15 +99,15 @@
'socketPath',
'serviceName',
];
- const visibleProps = allProps.filter(x => driver?.showConnectionField(x, $values, { config: $config }));
+ const visibleProps = allProps.filter(x => driver?.showConnectionField(x, values, { config: $config }));
const omitProps = _.difference(allProps, visibleProps);
- if (!$values.defaultDatabase) omitProps.push('singleDatabase');
+ if (!values.defaultDatabase) omitProps.push('singleDatabase');
- let connection: Dictionary = _.omit($values, omitProps);
+ let connection: Dictionary = _.omit(values, omitProps);
if (driver?.beforeConnectionSave) connection = driver?.beforeConnectionSave(connection);
- if (driver?.showConnectionTab('sshTunnel', $values)) {
- if (!$values.useSshTunnel) {
+ if (driver?.showConnectionTab('sshTunnel', values)) {
+ if (!values.useSshTunnel) {
connection = _.omitBy(connection, (v, k) => k.startsWith('ssh'));
}
} else {
@@ -111,8 +115,8 @@
connection = _.omitBy(connection, (v, k) => k.startsWith('ssh'));
}
- if (driver?.showConnectionTab('ssl', $values)) {
- if (!$values.useSsl) {
+ if (driver?.showConnectionTab('ssl', values)) {
+ if (!values.useSsl) {
connection = _.omitBy(connection, (v, k) => k.startsWith('ssl'));
}
} else {
@@ -123,6 +127,8 @@
return connection;
}
+ $: currentConnection = getCurrentConnectionCore($values, driver);
+
async function handleSave() {
let connection = getCurrentConnection();
connection = {
@@ -211,7 +217,7 @@
{
label: 'General',
component: ConnectionDriverFields,
- props: { getDatabaseList },
+ props: { getDatabaseList, currentConnection },
},
driver?.showConnectionTab('sshTunnel', $values) && {
label: 'SSH Tunnel',