diff options
author | Pavel Vomacka <pvomacka@redhat.com> | 2016-08-11 15:51:33 +0200 |
---|---|---|
committer | Martin Babinsky <mbabinsk@redhat.com> | 2017-03-08 14:54:56 +0100 |
commit | 7b699105a52d4d8c26a73044ba182d752b4a9833 (patch) | |
tree | 34240036e509f2958f883797a13eaeadf85fd263 | |
parent | 6c95f33d37a2c346fc56d9890d594f1e40029c77 (diff) | |
download | freeipa-7b699105a52d4d8c26a73044ba182d752b4a9833.tar.gz freeipa-7b699105a52d4d8c26a73044ba182d752b4a9833.tar.xz freeipa-7b699105a52d4d8c26a73044ba182d752b4a9833.zip |
Add javascript integer validator
Javascript integer validator checks whether value entered into field is number
and is not higher than Number.MAX_SAFE_INTEGER constant.
Part of: https://fedorahosted.org/freeipa/ticket/5742
Reviewed-By: Petr Vobornik <pvoborni@redhat.com>
-rw-r--r-- | install/ui/src/freeipa/field.js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/install/ui/src/freeipa/field.js b/install/ui/src/freeipa/field.js index 9f287dd33..f410557ba 100644 --- a/install/ui/src/freeipa/field.js +++ b/install/ui/src/freeipa/field.js @@ -971,6 +971,39 @@ field.validator = IPA.validator = function(spec) { }; /** + * Javascript integer validator + * + * It allows to insert only integer numbers which can be safely represented by + * Javascript. + * + * @class + * @alternateClassName IPA.integer_validator + * @extends IPA.validator + */ + field.integer_validator = IPA.integer_validator = function(spec) { + + var that = IPA.validator(spec); + + /** + * @inheritDoc + */ + that.validate = function(value) { + + if (!value.match(/^-?\d+$/)) { + return that.false_result(text.get('@i18n:widget.validation.integer')); + } + + if (!Number.isSafeInteger(parseInt(value, 10))) { + return that.false_result(text.get('@i18n:widget.validation.unsupported')); + } + + return that.true_result(); + }; + + return that; + }; + +/** * Metadata validator * * Validates value according to supplied metadata @@ -1710,6 +1743,7 @@ field.register = function() { v.register('metadata', field.metadata_validator); v.register('unsupported', field.unsupported_validator); v.register('same_password', field.same_password_validator); + v.register('integer', field.integer_validator); l.register('adapter', field.Adapter); l.register('object_adapter', field.ObjectAdapter); |