summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Vomacka <pvomacka@redhat.com>2016-08-11 15:51:33 +0200
committerMartin Babinsky <mbabinsk@redhat.com>2017-03-08 14:54:56 +0100
commit7b699105a52d4d8c26a73044ba182d752b4a9833 (patch)
tree34240036e509f2958f883797a13eaeadf85fd263
parent6c95f33d37a2c346fc56d9890d594f1e40029c77 (diff)
downloadfreeipa-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.js34
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);