Fix custom option support in CMS + update providername in provided profile (#21183)

This commit is contained in:
Cheena Malhotra
2022-11-09 15:50:25 -08:00
committed by GitHub
parent 298cc4676b
commit 3922117771
3 changed files with 20 additions and 13 deletions

View File

@@ -28,7 +28,7 @@ export class CmsConnectionController extends ConnectionController {
) {
super(connectionProperties, callback, providerName, _connectionManagementService, _instantiationService, _serverGroupController, _logService);
let specialOptions = this._providerOptions.filter(
(property) => (property.specialValueType !== null && property.specialValueType !== undefined));
(property) => (property.specialValueType !== null && property.specialValueType !== undefined || property.showOnConnectionDialog));
this._connectionWidget = this._instantiationService.createInstance(CmsConnectionWidget, specialOptions, {
onSetConnectButton: (enable: boolean) => this._callback.onSetConnectButton(enable),
onCreateNewServerGroup: () => this.onCreateNewServerGroup(),

View File

@@ -74,6 +74,9 @@ export class CmsConnectionWidget extends ConnectionWidget {
// Login Options
this.addLoginOptions();
// Add Custom connection options
this.addCustomConnectionOptions();
// Connection Name
this.addConnectionNameOptions();

View File

@@ -181,18 +181,7 @@ export class ConnectionDialogService implements IConnectionDialogService {
}
profile = result.connection;
profile.serverName = trim(profile.serverName);
// append the port to the server name for SQL Server connections
if (this._currentProviderType === Constants.mssqlProviderName ||
this._currentProviderType === Constants.cmsProviderName) {
let portPropertyName: string = 'port';
let portOption: string = profile.options[portPropertyName];
if (portOption && portOption.indexOf(',') === -1) {
profile.serverName = profile.serverName + ',' + portOption;
}
profile.options[portPropertyName] = undefined;
profile.providerName = Constants.mssqlProviderName;
}
this.updatePortAndProvider(profile);
// Disable password prompt during reconnect if connected with an empty password
if (profile.password === '' && profile.savePassword === false) {
@@ -202,6 +191,7 @@ export class ConnectionDialogService implements IConnectionDialogService {
this.handleDefaultOnConnect(params, profile).catch(err => onUnexpectedError(err));
} else {
profile.serverName = trim(profile.serverName);
this.updatePortAndProvider(profile);
this._connectionManagementService.addSavedPassword(profile).then(async (connectionWithPassword) => {
await this.handleDefaultOnConnect(params, connectionWithPassword);
}).catch(err => onUnexpectedError(err));
@@ -209,6 +199,20 @@ export class ConnectionDialogService implements IConnectionDialogService {
}
}
private updatePortAndProvider(profile: IConnectionProfile): void {
// append the port to the server name for SQL Server connections
if (this._currentProviderType === Constants.mssqlProviderName ||
this._currentProviderType === Constants.cmsProviderName) {
let portPropertyName: string = 'port';
let portOption: string = profile.options[portPropertyName];
if (portOption && portOption.indexOf(',') === -1) {
profile.serverName = profile.serverName + ',' + portOption;
}
profile.options[portPropertyName] = undefined;
profile.providerName = Constants.mssqlProviderName;
}
}
private handleOnCancel(params: INewConnectionParams): void {
if (this.ignoreNextConnect) {
this._connectionDialog.resetConnection();