From 93f9828d04bf6439bdf974b88ce696d4209058bb Mon Sep 17 00:00:00 2001 From: Matt Irvine Date: Wed, 28 Mar 2018 13:56:10 -0700 Subject: [PATCH] Focus connection dialog on password when prompting for it (#1019) --- .../connectionDialog/connectionWidget.ts | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/sql/parts/connection/connectionDialog/connectionWidget.ts b/src/sql/parts/connection/connectionDialog/connectionWidget.ts index 0a32081964..e643ac581f 100644 --- a/src/sql/parts/connection/connectionDialog/connectionWidget.ts +++ b/src/sql/parts/connection/connectionDialog/connectionWidget.ts @@ -283,11 +283,9 @@ export class ConnectionWidget { } private setConnectButton(): void { - let authDisplayName: string = this.getAuthTypeDisplayName(this.authenticationType); - let authType: AuthenticationType = this.getMatchingAuthType(authDisplayName); let showUsernameAndPassword: boolean = true; - if (authType) { - showUsernameAndPassword = authType.showUsernameAndPassword; + if (this.authType) { + showUsernameAndPassword = this.authType.showUsernameAndPassword; } showUsernameAndPassword ? this._callbacks.onSetConnectButton(!!this.serverName && !!this.userName) : this._callbacks.onSetConnectButton(!!this.serverName); @@ -344,6 +342,7 @@ export class ConnectionWidget { public focusOnOpen(): void { this._serverNameInputBox.focus(); + this.focusPasswordIfNeeded(); } private getModelValue(value: string): string { @@ -391,6 +390,7 @@ export class ConnectionWidget { // 1. Authentication type is SQL Login and no username is provided // 2. No server name is provided this.setConnectButton(); + this.focusPasswordIfNeeded(); } } @@ -555,6 +555,17 @@ export class ConnectionWidget { public set databaseDropdownExpanded(val: boolean) { this._databaseDropdownExpanded = val; } + + private get authType(): AuthenticationType { + let authDisplayName: string = this.getAuthTypeDisplayName(this.authenticationType); + return this.getMatchingAuthType(authDisplayName); + } + + private focusPasswordIfNeeded(): void { + if (this.authType && this.authType.showUsernameAndPassword && this.userName && !this.password) { + this._passwordInputBox.focus(); + } + } } class AuthenticationType {