summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Young <ayoung@redhat.com>2011-07-05 10:35:50 -0400
committerEndi S. Dewata <edewata@redhat.com>2011-07-05 20:31:00 +0000
commita3a9267334ad47e78f8d3b223015b5b408a2225c (patch)
treeeddfad618e3f62e05c5f1200a3b840d6c99431cc
parent6083df1b02f545b92e8d8fd8c767f7bbd0ca4b10 (diff)
downloadfreeipa-a3a9267334ad47e78f8d3b223015b5b408a2225c.zip
freeipa-a3a9267334ad47e78f8d3b223015b5b408a2225c.tar.gz
freeipa-a3a9267334ad47e78f8d3b223015b5b408a2225c.tar.xz
validate ints
validate integers whether meta comes from metadata or param_info https://fedorahosted.org/freeipa/ticket/1415
-rw-r--r--install/ui/widget.js73
1 files changed, 40 insertions, 33 deletions
diff --git a/install/ui/widget.js b/install/ui/widget.js
index 2ea345d..cd3a5c6 100644
--- a/install/ui/widget.js
+++ b/install/ui/widget.js
@@ -70,6 +70,44 @@ IPA.widget = function(spec) {
that._entity_name = entity_name;
});
+
+ function meta_validate(meta, value){
+ var message;
+
+ if (meta.type == 'int') {
+ if (!value.match(/^-?\d+$/)) {
+ that.valid = false;
+ that.show_error(IPA.messages.widget.validation.integer);
+ return;
+ }
+
+ if (meta.minvalue && value < meta.minvalue) {
+ that.valid = false;
+ message = IPA.messages.widget.validation.min_value;
+ message = message.replace('${value}', meta.minvalue);
+ that.show_error(message);
+ return;
+ }
+
+ if (meta.maxvalue && value > meta.maxvalue) {
+ that.valid = false;
+ message = IPA.messages.widget.validation.max_value;
+ message = message.replace('${value}', meta.maxvalue);
+ that.show_error(message);
+ return;
+ }
+ }
+ if (meta.pattern) {
+ var regex = new RegExp(meta.pattern);
+ if (!value.match(regex)) {
+ that.valid = false;
+ that.show_error(meta.pattern_errmsg);
+ return;
+ }
+ }
+
+ }
+
/*returns true and clears the error message if the field value passes
the validation pattern. If the field value does not pass validation,
displays the error message and returns false. */
@@ -78,7 +116,6 @@ IPA.widget = function(spec) {
that.hide_error();
that.valid = true;
- var message;
var values = that.save();
if (!values || !values.length) {
@@ -97,40 +134,10 @@ IPA.widget = function(spec) {
}
if (that.metadata) {
- if (that.metadata.type == 'int') {
- if (!value.match(/^-?\d+$/)) {
- that.valid = false;
- that.show_error(IPA.messages.widget.validation.integer);
- return;
- }
-
- if (that.metadata.minvalue && value < that.metadata.minvalue) {
- that.valid = false;
- message = IPA.messages.widget.validation.min_value;
- message = message.replace('${value}', that.metadata.minvalue);
- that.show_error(message);
- return;
- }
-
- if (that.metadata.maxvalue && value > that.metadata.maxvalue) {
- that.valid = false;
- message = IPA.messages.widget.validation.max_value;
- message = message.replace('${value}', that.metadata.maxvalue);
- that.show_error(message);
- return;
- }
- }
+ meta_validate(that.metadata,value);
}
-
if (that.param_info) {
- if (that.param_info.pattern) {
- var regex = new RegExp(that.param_info.pattern);
- if (!value.match(regex)) {
- that.valid = false;
- that.show_error(that.param_info.pattern_errmsg);
- return;
- }
- }
+ meta_validate(that.param_info,value);
}
};