Fix wizard not displaying error messages (#8545)

This commit is contained in:
Charles Gagnon
2019-12-03 17:40:19 -08:00
committed by GitHub
parent 7f16a4d857
commit 6cce532ca4
2 changed files with 25 additions and 12 deletions

View File

@@ -481,7 +481,13 @@ export abstract class Modal extends Disposable implements IThemable {
this._messageDetail.innerText = description; this._messageDetail.innerText = description;
} }
DOM.removeNode(this._messageDetail); DOM.removeNode(this._messageDetail);
if (this._messageSummaryText) { this.messagesElementVisible = !!this._messageSummaryText;
this.updateExpandMessageState();
}
}
protected set messagesElementVisible(visible: boolean) {
if (visible) {
if (this._useDefaultMessageBoxLocation) { if (this._useDefaultMessageBoxLocation) {
DOM.prepend(this._modalContent, (this._messageElement)); DOM.prepend(this._modalContent, (this._messageElement));
} }
@@ -490,8 +496,6 @@ export abstract class Modal extends Disposable implements IThemable {
this.setInitialFocusedElement(); this.setInitialFocusedElement();
DOM.removeNode(this._messageElement); DOM.removeNode(this._messageElement);
} }
this.updateExpandMessageState();
}
} }
/** /**

View File

@@ -36,6 +36,7 @@ export class WizardModal extends Modal {
private _body: HTMLElement; private _body: HTMLElement;
private _pageContainer: HTMLElement; private _pageContainer: HTMLElement;
private _mpContainer: HTMLElement;
// Buttons // Buttons
private _previousButton: Button; private _previousButton: Button;
@@ -130,9 +131,8 @@ export class WizardModal extends Modal {
this.initializeNavigation(this._body); this.initializeNavigation(this._body);
const mpContainer = append(this._body, $('div.dialog-message-and-page-container')); this._mpContainer = append(this._body, $('div.dialog-message-and-page-container'));
mpContainer.append(this._messageElement); this._pageContainer = append(this._mpContainer, $('div.dialogModal-page-container'));
this._pageContainer = append(mpContainer, $('div.dialogModal-page-container'));
this._wizard.pages.forEach(page => { this._wizard.pages.forEach(page => {
this.registerPage(page); this.registerPage(page);
@@ -152,6 +152,15 @@ export class WizardModal extends Modal {
this.updatePageNumbers(); this.updatePageNumbers();
} }
protected set messagesElementVisible(visible: boolean) {
if (visible) {
this._mpContainer.prepend(this._messageElement);
} else {
// Let base class handle it
super.messagesElementVisible = false;
}
}
private updatePageNumbers(): void { private updatePageNumbers(): void {
this._wizard.pages.forEach((page, index) => { this._wizard.pages.forEach((page, index) => {
let dialogPane = this._dialogPanes.get(page); let dialogPane = this._dialogPanes.get(page);