diff options
Diffstat (limited to 'install/ui/details.js')
-rw-r--r-- | install/ui/details.js | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/install/ui/details.js b/install/ui/details.js index 564d848d4..4550c1abf 100644 --- a/install/ui/details.js +++ b/install/ui/details.js @@ -128,6 +128,18 @@ IPA.details_section = function(spec) { return false; }; + that.is_valid = function() { + var fields = that.fields.values; + var valid = true; + for (var i=0; i<fields.length; i++) { + var field = fields[i]; + if (!field.valid || !field.check_required()) { + valid = false; + } + } + return valid; + }; + // methods that should be invoked by subclasses that.section_create = that.create; that.section_setup = that.setup; @@ -458,12 +470,12 @@ IPA.details_facet = function(spec) { on_win(data, text_status, xhr); if (data.error) return; - + if (that.post_update_hook) { that.post_update_hook(data, text_status); return; } - + var result = data.result.result; that.load(result); } @@ -488,11 +500,17 @@ IPA.details_facet = function(spec) { }); var values; + var valid = true; var sections = that.sections.values; for (var i=0; i<sections.length; i++) { var section = sections[i]; + if(!section.is_valid() || !valid) { + valid = false; + continue; + } + if (section.save) { section.save(command.options); continue; @@ -528,6 +546,15 @@ IPA.details_facet = function(spec) { } } + if(!valid) { + var dialog = IPA.message_dialog({ + title: IPA.messages.dialogs.validation_title, + message: IPA.messages.dialogs.validation_message + }); + dialog.open(); + return; + } + //alert(JSON.stringify(command.to_json())); if (that.pre_execute_hook){ |