diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2012-09-05 14:45:26 +0200 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2012-09-06 10:27:16 +0200 |
commit | 77ad84f47ebe2273b6ed010853cc28d53ef9e7a5 (patch) | |
tree | ceda5dabcae4077fc51bce5e5e85b5fdd08d0290 /install/ui | |
parent | 07cae43484911ddf87b87d7d3399f7b09378f8fe (diff) | |
download | freeipa-77ad84f47ebe2273b6ed010853cc28d53ef9e7a5.tar.gz freeipa-77ad84f47ebe2273b6ed010853cc28d53ef9e7a5.tar.xz freeipa-77ad84f47ebe2273b6ed010853cc28d53ef9e7a5.zip |
Added decimal checks to metadata validator
Medatadata validator didn't have check for decimal values. It was added.
https://fedorahosted.org/freeipa/ticket/3052
Diffstat (limited to 'install/ui')
-rw-r--r-- | install/ui/field.js | 16 | ||||
-rw-r--r-- | install/ui/test/data/ipa_init.json | 1 |
2 files changed, 14 insertions, 3 deletions
diff --git a/install/ui/field.js b/install/ui/field.js index 8e2d116c0..5aa24c70e 100644 --- a/install/ui/field.js +++ b/install/ui/field.js @@ -430,21 +430,31 @@ IPA.metadata_validator = function(spec) { var message; var metadata = context.metadata; + var number = false; if (!metadata || IPA.is_empty(value)) return that.true_result(); - if (metadata.type == 'int') { + if (metadata.type === 'int') { + number = true; if (!value.match(/^-?\d+$/)) { return that.false_result(IPA.messages.widget.validation.integer); } + } else if (metadata.type === 'Decimal') { + number = true; + if (!value.match(/^-?\d+(\.\d+)?$/)) { + return that.false_result(IPA.messages.widget.validation.decimal); + } + } + + if (number) { - if (metadata.minvalue !== undefined && value < metadata.minvalue) { + if (metadata.minvalue !== undefined && Number(value) < Number(metadata.minvalue)) { message = IPA.messages.widget.validation.min_value; message = message.replace('${value}', metadata.minvalue); return that.false_result(message); } - if (metadata.maxvalue !== undefined && value > metadata.maxvalue) { + if (metadata.maxvalue !== undefined && Number(value) > Number(metadata.maxvalue)) { message = IPA.messages.widget.validation.max_value; message = message.replace('${value}', metadata.maxvalue); return that.false_result(message); diff --git a/install/ui/test/data/ipa_init.json b/install/ui/test/data/ipa_init.json index 74d01706d..24364dafa 100644 --- a/install/ui/test/data/ipa_init.json +++ b/install/ui/test/data/ipa_init.json @@ -523,6 +523,7 @@ "undo_all": "undo all", "validation": { "error": "Text does not match field pattern", + "decimal": "Must be a decimal number", "integer": "Must be an integer", "ip_address": "Not a valid IP address", "ip_v4_address": "Not a valid IPv4 address", |