diff options
author | Adam Young <ayoung@redhat.com> | 2011-06-27 15:57:40 -0400 |
---|---|---|
committer | Adam Young <ayoung@redhat.com> | 2011-06-27 20:15:56 -0400 |
commit | 6e967d8fe709150d44b9af8df7312641a8747acf (patch) | |
tree | 829f50ece4af03d10a9965dcc778da9f6a29949d /install/ui | |
parent | d2d5278c52650cb90f1d77ac748f0a73f401bf5a (diff) | |
download | freeipa-6e967d8fe709150d44b9af8df7312641a8747acf.tar.gz freeipa-6e967d8fe709150d44b9af8df7312641a8747acf.tar.xz freeipa-6e967d8fe709150d44b9af8df7312641a8747acf.zip |
validate required fields https://fedorahosted.org/freeipa/ticket/1329
overides required with optional.
Diffstat (limited to 'install/ui')
-rw-r--r-- | install/ui/add.js | 4 | ||||
-rw-r--r-- | install/ui/dialog.js | 2 | ||||
-rw-r--r-- | install/ui/widget.js | 8 |
3 files changed, 12 insertions, 2 deletions
diff --git a/install/ui/add.js b/install/ui/add.js index eb4484346..50b6124c0 100644 --- a/install/ui/add.js +++ b/install/ui/add.js @@ -116,6 +116,10 @@ IPA.add_dialog = function (spec) { var fields = that.fields.values; for (var i=0; i<fields.length; i++) { + fields[i].validate(); + } + + for (i=0; i<fields.length; i++) { field = fields[i]; if (!field.valid) return; diff --git a/install/ui/dialog.js b/install/ui/dialog.js index f4aa71828..4ca38a914 100644 --- a/install/ui/dialog.js +++ b/install/ui/dialog.js @@ -344,8 +344,6 @@ IPA.dialog = function(spec) { var factory = field_spec.factory || IPA.text_widget; field = factory(field_spec); - field.optional = field_spec.optional || false; - /* This is a bit of a hack, and is here to support ACI permissions. The target section is a group of several widgets together. It makes more sense to do them as a diff --git a/install/ui/widget.js b/install/ui/widget.js index 38826ee9d..344d701c2 100644 --- a/install/ui/widget.js +++ b/install/ui/widget.js @@ -39,6 +39,8 @@ IPA.widget = function(spec) { that.disabled = spec.disabled; that.hidden = spec.hidden; that.conditional = spec.conditional; + that.optional = spec.optional || false; + // read_only is set during initialization that.read_only = spec.read_only; @@ -79,6 +81,12 @@ IPA.widget = function(spec) { var values = that.save(); if (!values || !values.length) { + if (that.param_info && + that.param_info.required && + !that.optional) { + that.valid = false; + that.show_error('required field'); + } return; } |