Skip to content

Commit

Permalink
#1896362: [Test]When click More Settings when creating a Function App…
Browse files Browse the repository at this point in the history
…, the OK button does not work.
  • Loading branch information
wangmingliang-ms committed Nov 20, 2021
1 parent db6460f commit 6f8a8a0
Showing 1 changed file with 23 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
public interface AzureFormInput<T> extends DataStore {
String MSG_REQUIRED = "This field is required.";
String FIELD_VALUE = "value";
String FIELD_DEFAULT_VALUE = "defaultValue";
String FIELD_VALIDATORS = "validators";
String FIELD_REQUIRED = "required";
String FIELD_VALIDATION_INFO = "validationInfo";
Expand All @@ -48,6 +49,14 @@ default void setValue(final T val) {
this.set(FIELD_VALUE, val);
}

default T getDefaultValue() {
return this.get(FIELD_DEFAULT_VALUE);
}

default void setDefaultValue(final T val) {
this.set(FIELD_DEFAULT_VALUE, val);
}

default void addValueChangedListener(Consumer<T> listener) {
final CopyOnWriteArrayList<Consumer<T>> valueChangedListeners = this.get(FIELD_VALUE_LISTENERS, new CopyOnWriteArrayList<>());
if (!valueChangedListeners.contains(listener)) {
Expand Down Expand Up @@ -159,30 +168,30 @@ default Mono<AzureValidationInfo> validateValueAsync() {
synchronized (this) {
final Field<MutableTriple<T, Mono<AzureValidationInfo>, Disposable>> VALIDATING = Field.of(FIELD_VALIDATING);
final MutableTriple<T, Mono<AzureValidationInfo>, Disposable> validating = this.get(VALIDATING);
final Runnable cancelValidating = () -> {
Optional.ofNullable(validating).ifPresent(v -> v.getRight().dispose());
this.set(VALIDATING, null);
};
if (!this.needValidation()) {
cancelValidating.run();
final AzureValidationInfo info = AzureValidationInfo.none(this);
this.setValidationInfo(info);
return Mono.just(info);
}
T value;
try {
value = this.getValue(); // parsing value may throw exception
} catch (Exception e) {
Optional.ofNullable(validating).ifPresent(v -> v.getRight().dispose());
cancelValidating.run();
final String msg = StringUtils.isBlank(e.getMessage()) ? "invalid value." : e.getMessage();
final AzureValidationInfo info = AzureValidationInfo.error(msg, this);
this.setValidationInfo(info);
this.set(VALIDATING, null);
return Mono.just(info);
}
if (Objects.nonNull(validating)) {
if (Objects.equals(validating.getLeft(), value)) {
return validating.getMiddle();
} else if (!validating.getRight().isDisposed()) {
validating.getRight().dispose();
}
}
this.set(VALIDATING, null);
if (!this.needValidation()) {
final AzureValidationInfo info = AzureValidationInfo.none(this);
this.setValidationInfo(info);
return Mono.just(info);
if (Objects.nonNull(validating) && Objects.equals(validating.getLeft(), value)) {
return validating.getMiddle();
}
cancelValidating.run();
return validateInternalAsync(value);
}
}
Expand Down

0 comments on commit 6f8a8a0

Please sign in to comment.