diff --git a/dist/knockout.validation.js b/dist/knockout.validation.js index ff7635eb..e6ab5443 100644 --- a/dist/knockout.validation.js +++ b/dist/knockout.validation.js @@ -525,7 +525,7 @@ kv.configuration = configuration; // } // )}; // - if (params && (params.message || params.onlyIf || params.severity)) { //if it has a message, condition, or severity object, then its an object literal to use + if (params && !ko.isObservable(params) && (params.message || params.onlyIf || params.severity)) { //if it has a message, condition, or severity object, then its an object literal to use return kv.addRule(observable, { rule: ruleName, message: params.message, @@ -1207,8 +1207,8 @@ ko.extenders['validatable'] = function (observable, options) { throttleEvaluation : options.throttle || config.throttle }; - observable.error = ko.observable(null); // holds the error message, we only need one since we stop processing validators when one is invalid and has a severity of 1 - observable.errorSeverity = ko.observable(1); + observable.error = ko.observable(null); // holds the error message, we only need one since we stop processing validators when one is invalid and has and has a severity of 1 + observable.severity = ko.observable(1); // observable.rules: // ObservableArray of Rule Contexts, where a Rule Context is simply the name of a rule and the params to supply to it @@ -1233,7 +1233,7 @@ ko.extenders['validatable'] = function (observable, options) { var previousIsValid = observable.__valid__.peek(); observable.error(error); - observable.errorSeverity(severity); + observable.severity(severity); observable.__valid__(false); if (previousError !== error && !previousIsValid) { diff --git a/src/api.js b/src/api.js index 7405d3ee..ec52d0db 100644 --- a/src/api.js +++ b/src/api.js @@ -327,7 +327,7 @@ // } // )}; // - if (params && (params.message || params.onlyIf || params.severity)) { //if it has a message, condition, or severity object, then its an object literal to use + if (params && !ko.isObservable(params) && (params.message || params.onlyIf || params.severity)) { //if it has a message, condition, or severity object, then its an object literal to use return ko.validation.addRule(observable, { rule: ruleName, message: params.message, diff --git a/src/extenders.js b/src/extenders.js index 6e69fb50..0ab64ceb 100644 --- a/src/extenders.js +++ b/src/extenders.js @@ -42,8 +42,8 @@ ko.extenders['validatable'] = function (observable, options) { throttleEvaluation : options.throttle || config.throttle }; - observable.error = ko.observable(null); // holds the error message, we only need one since we stop processing validators when one is invalid and has a severity of 1 - observable.errorSeverity = ko.observable(1); + observable.error = ko.observable(null); // holds the error message, we only need one since we stop processing validators when one is invalid and has and has a severity of 1 + observable.severity = ko.observable(1); // observable.rules: // ObservableArray of Rule Contexts, where a Rule Context is simply the name of a rule and the params to supply to it @@ -68,7 +68,7 @@ ko.extenders['validatable'] = function (observable, options) { var previousIsValid = observable.__valid__.peek(); observable.error(error); - observable.errorSeverity(severity); + observable.severity(severity); observable.__valid__(false); if (previousError !== error && !previousIsValid) { diff --git a/test/validation-tests.js b/test/validation-tests.js index 2b32b758..4242812a 100644 --- a/test/validation-tests.js +++ b/test/validation-tests.js @@ -436,7 +436,7 @@ QUnit.test('message parameter receives params and observable when async', functi //#region Severity tests -QUnit.module('Error Severity tests'); +QUnit.module('Severity tests'); QUnit.test('isValid returns false for warning severity', function(assert) { var testObj = ko.observable('something').extend({ @@ -446,7 +446,7 @@ QUnit.test('isValid returns false for warning severity', function(assert) { }); testObj(''); assert.equal(testObj.isValid(), false); - assert.equal(testObj.errorSeverity(), 2, 'Severity should equal severity defined in required-validation'); + assert.equal(testObj.severity(), 2, 'Severity should equal severity defined in required-validation'); }); QUnit.test('default severity is 1', function(assert) { @@ -455,7 +455,7 @@ QUnit.test('default severity is 1', function(assert) { }); testObj(''); assert.equal(testObj.isValid(), false); - assert.equal(testObj.errorSeverity(), 1, 'Severity should be 1 when not defined'); + assert.equal(testObj.severity(), 1, 'Severity should be 1 when not defined'); }); QUnit.test('Lowest invalid rule severity is returned', function(assert) { @@ -474,7 +474,7 @@ QUnit.test('Lowest invalid rule severity is returned', function(assert) { }); testObj('test'); assert.equal(testObj.isValid(), false); - assert.equal(testObj.errorSeverity(), 2, 'Lowest broken rule severity should be 2'); + assert.equal(testObj.severity(), 2, 'Lowest broken rule severity should be 2'); }); QUnit.test('Lowest invalid rule severity for default severity is returned', function(assert) { @@ -486,6 +486,6 @@ QUnit.test('Lowest invalid rule severity for default severity is returned', func }); testObj(''); assert.equal(testObj.isValid(), false); - assert.equal(testObj.errorSeverity(), 1, 'Default severity for broken rule should be 1'); + assert.equal(testObj.severity(), 1, 'Default severity for broken rule should be 1'); }); //#endregion