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