in legacy/src/Calendar/Dialogs.ts [411:475]
private _validate(showError?: boolean) {
if (!this._contributionsValid) {
this._clearError();
this.updateOkButton(false);
return;
}
const validationResult = [];
const groupIsValid: boolean = Controls_Validation.validateGroup("default", validationResult);
if (!groupIsValid) {
if (showError) {
this._setError(validationResult[0].getMessage());
}
this.updateOkButton(false);
return;
}
const errorPromises: PromiseLike<string>[] = [];
// validate text input fields
const textFields = this._content.textFields;
const textInputs = this._$textInputs;
for (let i = 0; i < textInputs.length; i++) {
const textField = textFields[i];
if (textField.checkValid) {
errorPromises.push(
textField.checkValid($.trim(textInputs[i].val())).then((isValid: boolean) => {
if (!isValid) {
return textField.validationErrorMessage;
}
return "valid";
}),
);
}
}
// validate combo input fields
const comboFields = this._content.comboFields;
const comboInputs = this._$comboInputs;
for (let i = 0; i < comboInputs.length; i++) {
const comboField = comboFields[i];
if (comboField.checkValid && !comboField.disabled) {
errorPromises.push(
comboField.checkValid($.trim(comboInputs[i].val())).then((isValid: boolean) => {
if (!isValid) {
return comboField.validationErrorMessage;
}
return "valid";
}),
);
}
}
return Promise.all(errorPromises).then((results: string[]) => {
const invalidMessages = results.filter(r => r !== "valid");
if (invalidMessages && invalidMessages.length > 0) {
if (showError) {
this._setError(invalidMessages[0]);
}
this.updateOkButton(false);
return;
}
this._clearError();
this.updateOkButton(true);
});
}