Validation amends

- rename event
- pass data to hooks
- always call hooks (even when no validations set up)
This commit is contained in:
Anatoliy Chakkaev 2013-03-28 15:29:11 +04:00
parent 7707b236ff
commit 5540750626
1 changed files with 10 additions and 6 deletions

View File

@ -332,14 +332,18 @@ function getConfigurator(name, opts) {
* });
* ```
*/
Validatable.prototype.isValid = function (callback) {
Validatable.prototype.isValid = function (callback, data) {
var valid = true, inst = this, wait = 0, async = false;
// exit with success when no errors
if (!this.constructor._validations) {
cleanErrors(this);
if (callback) {
callback(valid);
this.trigger('validate', function (validationsDone) {
validationsDone.call(inst, function() {
callback(valid);
});
});
}
return valid;
}
@ -350,7 +354,7 @@ Validatable.prototype.isValid = function (callback) {
value: new Errors
});
this.trigger('validation', function (validationsDone) {
this.trigger('validate', function (validationsDone) {
var inst = this,
asyncFail = false;
@ -370,20 +374,20 @@ Validatable.prototype.isValid = function (callback) {
});
if (!async) {
validationsDone();
validationsDone.call(inst, callback);
}
function done(fail) {
asyncFail = asyncFail || fail;
if (--wait === 0 && callback) {
validationsDone.call(inst, function () {
if( valid && !asyncFail ) cleanErrors(inst);
if (valid && !asyncFail) cleanErrors(inst);
callback(valid && !asyncFail);
});
}
}
});
}, data);
if (!async) {
if (valid) cleanErrors(this);