diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2015-05-14 13:29:24 +0200 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2015-05-20 14:04:10 +0200 |
commit | 17aafc36b4c94cffa8427c8f4b2aef2292bba40d (patch) | |
tree | 523cbd070109bc1b548b446f592713709bf3feb1 /install | |
parent | 6a2b486e500b62abe7ef14e4f34c945726f3256b (diff) | |
download | freeipa-17aafc36b4c94cffa8427c8f4b2aef2292bba40d.tar.gz freeipa-17aafc36b4c94cffa8427c8f4b2aef2292bba40d.tar.xz freeipa-17aafc36b4c94cffa8427c8f4b2aef2292bba40d.zip |
webui: metadata validator min and max value overrides
Reviewed-By: David Kupka <dkupka@redhat.com>
Reviewed-By: Thierry Bordaz <tbordaz@redhat.com>
Diffstat (limited to 'install')
-rw-r--r-- | install/ui/src/freeipa/field.js | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/install/ui/src/freeipa/field.js b/install/ui/src/freeipa/field.js index c2609c564..776811430 100644 --- a/install/ui/src/freeipa/field.js +++ b/install/ui/src/freeipa/field.js @@ -237,6 +237,18 @@ field.field = IPA.field = function(spec) { that.metadata = spec.metadata; /** + * Override of metadata.minvalue + * @property {number} + */ + that.minvalue = spec.minvalue; + + /** + * Override of metadata.maxvalue + * @property {number} + */ + that.maxvalue = spec.maxvalue; + + /** * Validators * @property {Array.<IPA.validator>} */ @@ -955,6 +967,16 @@ field.metadata_validator = IPA.metadata_validator = function(spec) { var that = IPA.validator(spec); + that.get_property = function(name, obj, metadata) { + var prop = null; + if (IPA.defined(obj[name], true)) { + prop = obj[name]; + } else if (IPA.defined(metadata[name], true)) { + prop = metadata[name]; + } + return prop; + }; + /** * @inheritDoc */ @@ -980,13 +1002,17 @@ field.metadata_validator = IPA.metadata_validator = function(spec) { if (number) { - if (IPA.defined(metadata.minvalue, true) && Number(value) < Number(metadata.minvalue)) { + var numVal = Number(value); + var minvalue = that.get_property('minvalue', context, metadata); + var maxvalue = that.get_property('maxvalue', context, metadata); + + if (IPA.defined(minvalue) && numVal < Number(minvalue)) { message = text.get('@i18n:widget.validation.min_value'); message = message.replace('${value}', metadata.minvalue); return that.false_result(message); } - if (IPA.defined(metadata.maxvalue, true) && Number(value) > Number(metadata.maxvalue)) { + if (IPA.defined(maxvalue) && numVal > Number(maxvalue)) { message = text.get('@i18n:widget.validation.max_value'); message = message.replace('${value}', metadata.maxvalue); return that.false_result(message); |