Address Secure enclaves feedback to show required indicator optionally (#22428)

This commit is contained in:
Cheena Malhotra
2023-03-24 09:57:32 -07:00
committed by GitHub
parent ad6c202e34
commit d5c495f05a
6 changed files with 84 additions and 20 deletions

View File

@@ -326,7 +326,7 @@ export class ConnectionWidget extends lifecycle.Disposable {
let widget: AdsWidget | undefined = this._findWidget(collections, optionAction.optionName);
if (widget) {
createCSSRule(`.hide-${widget.id} .option-${widget.id}`, `display: none;`);
this._onValueChangeEvent(selectedValue, event.values, widget, defaultValue, optionAction.action);
this._onValueChangeEvent(selectedValue, event.values, widget, defaultValue, optionAction);
}
});
}));
@@ -351,10 +351,16 @@ export class ConnectionWidget extends lifecycle.Disposable {
}
private _onValueChangeEvent(selectedValue: string, acceptedValues: string[],
widget: AdsWidget, defaultValue: string, action: string): void {
if ((acceptedValues.includes(selectedValue.toLocaleLowerCase()) && action === Actions.Show)
|| (!acceptedValues.includes(selectedValue.toLocaleLowerCase()) && action === Actions.Hide)) {
widget: AdsWidget, defaultValue: string, optionAction: azdata.DependentOptionAction): void {
if ((acceptedValues.includes(selectedValue.toLocaleLowerCase()) && optionAction.action === Actions.Show)
|| (!acceptedValues.includes(selectedValue.toLocaleLowerCase()) && optionAction.action === Actions.Hide)) {
this._tableContainer.classList.remove(`hide-${widget.id}`);
if (optionAction.required) {
let element = DialogHelper.getOptionContainerByName(this._tableContainer, optionAction.optionName);
if (element) {
DialogHelper.appendRequiredIndicator(element);
}
}
} else {
// Support more Widget classes here as needed.
if (widget instanceof SelectBox) {
@@ -362,6 +368,12 @@ export class ConnectionWidget extends lifecycle.Disposable {
} else if (widget instanceof InputBox) {
widget.value = defaultValue;
}
// Reset required indicator.
let element = DialogHelper.getOptionContainerByName(this._tableContainer, optionAction.optionName);
if (element && element!.hasChildNodes && element.childElementCount > 1) {
element!.children.item(1).remove();
}
this._tableContainer.classList.add(`hide-${widget.id}`);
widget.hideMessage();
}