diff options
-rwxr-xr-x | install/static/hbac.js | 8 | ||||
-rwxr-xr-x | install/static/widget.js | 30 |
2 files changed, 35 insertions, 3 deletions
diff --git a/install/static/hbac.js b/install/static/hbac.js index f63a489e0..894b2f4a0 100755 --- a/install/static/hbac.js +++ b/install/static/hbac.js @@ -71,9 +71,13 @@ function ipa_hbac_add_dialog(spec) { 'undo': false })); - that.add_field(ipa_text_widget({ + that.add_field(ipa_radio_widget({ 'name': 'accessruletype', - 'label': 'Rule type (allow/deny)', + 'label': 'Rule type', + 'options': [ + { 'value': 'allow', 'label': 'Allow' }, + { 'value': 'deny', 'label': 'Deny' } + ], 'undo': false })); }; diff --git a/install/static/widget.js b/install/static/widget.js index f6bc3d837..060f258eb 100755 --- a/install/static/widget.js +++ b/install/static/widget.js @@ -265,6 +265,31 @@ function ipa_radio_widget(spec) { var that = ipa_widget(spec); + that.options = spec.options; + + that.create = function(container) { + + for (var i=0; i<that.options.length; i++) { + var option = that.options[i]; + + $('<input/>', { + 'type': 'radio', + 'name': that.name, + 'value': option.value + }).appendTo(container); + + container.append(option.label); + } + + if (that.undo) { + $('<span/>', { + 'name': 'undo', + 'style': 'display: none;', + 'html': 'undo' + }).appendTo(container); + } + }; + that.setup = function(container) { that.widget_setup(container); @@ -295,7 +320,10 @@ function ipa_radio_widget(spec) { }; that.clear = function() { - $('input[name="'+that.name+'"]', that.container).get().checked = false; + $('input[name="'+that.name+'"]', that.container).each(function() { + var input = this; + input.checked = false; + }); }; return that; |