mirror of
https://github.com/frappe/books.git
synced 2025-01-26 00:28:25 +00:00
feat: Standard validations for email and phone
This commit is contained in:
parent
d66501968f
commit
e609aea4b6
@ -237,10 +237,38 @@ module.exports = class BaseDocument extends Observable {
|
|||||||
this.meta.validateSelect(field, value);
|
this.meta.validateSelect(field, value);
|
||||||
}
|
}
|
||||||
if (field.validate) {
|
if (field.validate) {
|
||||||
await field.validate(value, this);
|
let validator = null;
|
||||||
|
if (typeof field.validate === 'object') {
|
||||||
|
validator = this.getValidateFunction(field.validate);
|
||||||
|
}
|
||||||
|
if (typeof field.validate === 'function') {
|
||||||
|
validator = field.validate;
|
||||||
|
}
|
||||||
|
if (validator) {
|
||||||
|
await validator(value, this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getValidateFunction(validator) {
|
||||||
|
let functions = {
|
||||||
|
email(value) {
|
||||||
|
let isValid = /(.+)@(.+){2,}\.(.+){2,}/.test(value);
|
||||||
|
if (!isValid) {
|
||||||
|
throw new frappe.errors.ValidationError(`Invalid email: ${value}`);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
phone(value) {
|
||||||
|
let isValid = /[+]{0,1}[\d ]+/.test(value);
|
||||||
|
if (!isValid) {
|
||||||
|
throw new frappe.errors.ValidationError(`Invalid phone: ${value}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return functions[validator.type];
|
||||||
|
}
|
||||||
|
|
||||||
getValidDict() {
|
getValidDict() {
|
||||||
let data = {};
|
let data = {};
|
||||||
for (let field of this.meta.getValidFields()) {
|
for (let field of this.meta.getValidFields()) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user