customize loading status message (#23247)

* customize loading status message

* Update extensions/mssql/src/ui/localizedConstants.ts

Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>

* Update extensions/mssql/src/ui/localizedConstants.ts

Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>

---------

Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>
This commit is contained in:
Alan Ren
2023-05-30 13:23:38 -07:00
committed by GitHub
parent 8db9d10d0f
commit 53250c6bc4
5 changed files with 14 additions and 8 deletions

View File

@@ -181,9 +181,9 @@ export abstract class PrincipalDialogBase<ObjectInfoType extends mssql.ObjectMan
}
private async searchForObjects(objectTypes: string[], schema: string = undefined): Promise<mssql.ObjectManagement.SearchResultItem[]> {
this.updateLoadingStatus(true);
this.updateLoadingStatus(true, localizedConstants.LoadingObjectsText);
const result = await this.objectManagementService.search(this.contextId, objectTypes, undefined, schema);
this.updateLoadingStatus(false);
this.updateLoadingStatus(false, localizedConstants.LoadingObjectsText, localizedConstants.LoadingObjectsCompletedText(result.length));
return result;
}

View File

@@ -84,6 +84,7 @@ export abstract class DialogBase<DialogResult> {
this._loadingComponent = view.modelBuilder.loadingComponent().withItem(this._formContainer).withProps({
loading: true,
loadingText: uiLoc.LoadingDialogText,
loadingCompletedText: uiLoc.LoadingDialogCompletedText,
showText: true,
CSSStyles: {
width: "100%",
@@ -338,8 +339,10 @@ export abstract class DialogBase<DialogResult> {
}
}
protected updateLoadingStatus(isLoading: boolean): void {
protected updateLoadingStatus(isLoading: boolean, loadingText: string = uiLoc.LoadingDialogText, loadingCompletedText: string = uiLoc.LoadingDialogCompletedText): void {
if (this._loadingComponent) {
this._loadingComponent.loadingText = loadingText;
this._loadingComponent.loadingCompletedText = loadingCompletedText;
this._loadingComponent.loading = isLoading;
}
}

View File

@@ -10,12 +10,15 @@ export const HelpText: string = localize('mssql.ui.helpText', "Help");
export const YesText: string = localize('mssql.ui.yesText', "Yes");
export const OkText: string = localize('mssql.ui.OkText', "OK");
export const LoadingDialogText: string = localize('mssql.ui.loadingDialog', "Loading dialog...");
export const LoadingDialogCompletedText: string = localize('mssql.ui.loadingDialog', "Loading dialog completed");
export const ScriptText: string = localize('mssql.ui.scriptText', "Script");
export const SelectText = localize('objectManagement.selectLabel', "Select");
export const AddText = localize('objectManagement.addText', "Add…");
export const RemoveText = localize('objectManagement.removeText', "Remove");
export const NoActionScriptedMessage: string = localize('mssql.ui.noActionScriptedMessage', "There is no action to be scripted.");
export const ScriptGeneratedText: string = localize('mssql.ui.scriptGenerated', "Script has been generated successfully. You can close the dialog to view it in the newly opened editor.")
export const GeneratingScriptText: string = localize('mssql.ui.generatingScript', "Generating script...");
export const GeneratingScriptCompletedText: string = localize('mssql.ui.generatingScriptCompleted', "Script generated");
export function scriptError(error: string): string {
return localize('mssql.ui.scriptError', "An error occurred while generating the script. {0}", error);

View File

@@ -68,8 +68,8 @@ export abstract class ScriptableDialogBase<OptionsType extends ScriptableDialogO
await this.initializeUI();
}
protected override updateLoadingStatus(isLoading: boolean): void {
super.updateLoadingStatus(isLoading);
protected override updateLoadingStatus(isLoading: boolean, loadingText?: string, loadingCompletedText?: string): void {
super.updateLoadingStatus(isLoading, loadingText, loadingCompletedText);
this._helpButton.enabled = !isLoading;
this.dialogObject.okButton.enabled = this._scriptButton.enabled = isLoading ? false : this.isDirty;
}
@@ -80,7 +80,7 @@ export abstract class ScriptableDialogBase<OptionsType extends ScriptableDialogO
protected abstract generateScript(): Promise<string>;
private async onScriptButtonClick(): Promise<void> {
this.updateLoadingStatus(true);
this.updateLoadingStatus(true, localizedConstants.GeneratingScriptText, localizedConstants.GeneratingScriptCompletedText);
try {
const isValid = await this.runValidation();
if (!isValid) {
@@ -104,7 +104,7 @@ export abstract class ScriptableDialogBase<OptionsType extends ScriptableDialogO
level: azdata.window.MessageLevel.Error
};
} finally {
this.updateLoadingStatus(false);
this.updateLoadingStatus(false, localizedConstants.GeneratingScriptText, localizedConstants.GeneratingScriptCompletedText);
}
}
}

View File

@@ -98,7 +98,7 @@ export default class GroupContainer extends ContainerBase<GroupLayout, GroupCont
}
public get header(): string {
return this._containerLayout?.header;
return this._containerLayout?.header ?? '';
}
private hasHeader(): boolean {