mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-16 09:35:36 -05:00
sql-database-projects dialog completion cleanup (#17525)
This commit is contained in:
@@ -46,8 +46,7 @@ export class AddDatabaseReferenceDialog {
|
||||
public currentReferenceType: ReferenceType | undefined;
|
||||
|
||||
private toDispose: vscode.Disposable[] = [];
|
||||
private initDialogComplete: Deferred<void> | undefined;
|
||||
private initDialogPromise: Promise<void> = new Promise<void>((resolve, reject) => this.initDialogComplete = { resolve, reject });
|
||||
private initDialogComplete: Deferred = new Deferred();
|
||||
|
||||
public addReference: ((proj: Project, settings: ISystemDatabaseReferenceSettings | IDacpacReferenceSettings | IProjectReferenceSettings) => any) | undefined;
|
||||
|
||||
@@ -86,7 +85,7 @@ export class AddDatabaseReferenceDialog {
|
||||
this.dialog.cancelButton.label = constants.cancelButtonText;
|
||||
|
||||
utils.getAzdataApi()!.window.openDialog(this.dialog);
|
||||
await this.initDialogPromise;
|
||||
await this.initDialogComplete.promise;
|
||||
}
|
||||
|
||||
private dispose(): void {
|
||||
@@ -144,7 +143,7 @@ export class AddDatabaseReferenceDialog {
|
||||
await this.systemDatabaseRadioButton?.focus();
|
||||
}
|
||||
|
||||
this.initDialogComplete?.resolve();
|
||||
this.initDialogComplete.resolve();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -29,8 +29,7 @@ export class CreateProjectFromDatabaseDialog {
|
||||
private formBuilder: azdataType.FormBuilder | undefined;
|
||||
private connectionId: string | undefined;
|
||||
private toDispose: vscode.Disposable[] = [];
|
||||
private initDialogComplete!: Deferred<void>;
|
||||
private initDialogPromise: Promise<void> = new Promise<void>((resolve, reject) => this.initDialogComplete = { resolve, reject });
|
||||
private initDialogComplete: Deferred = new Deferred();
|
||||
|
||||
public createProjectFromDatabaseCallback: ((model: ImportDataModel) => any) | undefined;
|
||||
|
||||
@@ -51,7 +50,7 @@ export class CreateProjectFromDatabaseDialog {
|
||||
this.dialog.cancelButton.label = constants.cancelButtonText;
|
||||
|
||||
getAzdataApi()!.window.openDialog(this.dialog);
|
||||
await this.initDialogPromise;
|
||||
await this.initDialogComplete.promise;
|
||||
|
||||
if (this.profile) {
|
||||
await this.updateConnectionComponents(getConnectionName(this.profile), this.profile.id, this.profile.databaseName!);
|
||||
|
||||
@@ -16,6 +16,7 @@ import { IconPathHelper } from '../common/iconHelper';
|
||||
import { cssStyles } from '../common/uiConstants';
|
||||
import { getConnectionName } from './utils';
|
||||
import { TelemetryActions, TelemetryReporter, TelemetryViews } from '../common/telemetry';
|
||||
import { Deferred } from '../common/promise';
|
||||
|
||||
interface DataSourceDropdownValue extends azdataType.CategoryValue {
|
||||
dataSource: SqlConnectionDataSource;
|
||||
@@ -44,6 +45,8 @@ export class PublishDatabaseDialog {
|
||||
private profileUsed: boolean = false;
|
||||
private serverName: string | undefined;
|
||||
|
||||
private completionPromise: Deferred = new Deferred();
|
||||
|
||||
private toDispose: vscode.Disposable[] = [];
|
||||
|
||||
public publish: ((proj: Project, profile: IDeploySettings) => any) | undefined;
|
||||
@@ -71,6 +74,13 @@ export class PublishDatabaseDialog {
|
||||
this.dialog.customButtons.push(generateScriptButton);
|
||||
|
||||
utils.getAzdataApi()!.window.openDialog(this.dialog);
|
||||
// Complete the promise when we're done - we use a disposable here instead of a CloseValidator because we have custom buttons (generate script)
|
||||
// which don't go through that logic.
|
||||
this.toDispose.push({ dispose: () => { this.completionPromise.resolve(); } });
|
||||
}
|
||||
|
||||
public waitForClose(): Promise<void> {
|
||||
return this.completionPromise.promise;
|
||||
}
|
||||
|
||||
private dispose(): void {
|
||||
|
||||
Reference in New Issue
Block a user