diff options
author | Endi Sukma Dewata <edewata@redhat.com> | 2011-11-21 16:43:52 -0600 |
---|---|---|
committer | Endi S. Dewata <edewata@redhat.com> | 2011-12-07 15:33:06 +0000 |
commit | 9276e51bce438b0686deac827fce2ca60a5301e1 (patch) | |
tree | cb82201c759df569131a836489cc57ec939619a1 /install/ui | |
parent | d040b93e386457266d5095bd696fa146962b640c (diff) | |
download | freeipa-9276e51bce438b0686deac827fce2ca60a5301e1.tar.gz freeipa-9276e51bce438b0686deac827fce2ca60a5301e1.tar.xz freeipa-9276e51bce438b0686deac827fce2ca60a5301e1.zip |
Fixed navigation buttons for HBAC Test.
The Back, Next, and New Test buttons in HBAC Test have been fixed
to work properly.
Ticket #388
Diffstat (limited to 'install/ui')
-rw-r--r-- | install/ui/dialog.js | 8 | ||||
-rw-r--r-- | install/ui/facet.js | 12 | ||||
-rw-r--r-- | install/ui/hbactest.js | 97 | ||||
-rw-r--r-- | install/ui/ipa.css | 36 | ||||
-rwxr-xr-x | install/ui/jquery.ordered-map.js | 14 | ||||
-rw-r--r-- | install/ui/widget.js | 2 |
6 files changed, 136 insertions, 33 deletions
diff --git a/install/ui/dialog.js b/install/ui/dialog.js index 375ab84c3..8128452df 100644 --- a/install/ui/dialog.js +++ b/install/ui/dialog.js @@ -405,7 +405,7 @@ IPA.adder_dialog = function(spec) { 'class': 'adder-dialog-buttons' }).appendTo(container); - var p = $('<p/>').appendTo(buttons_panel); + var div = $('<div/>').appendTo(buttons_panel); IPA.button({ name: 'add', label: '>>', @@ -414,9 +414,9 @@ IPA.adder_dialog = function(spec) { that.update_buttons(); return false; } - }).appendTo(p); + }).appendTo(div); - p = $('<p/>').appendTo(buttons_panel); + div = $('<div/>').appendTo(buttons_panel); IPA.button({ name: 'remove', label: '<<', @@ -425,7 +425,7 @@ IPA.adder_dialog = function(spec) { that.update_buttons(); return false; } - }).appendTo(p); + }).appendTo(div); that.filter_field = $('input[name=filter]', that.container); diff --git a/install/ui/facet.js b/install/ui/facet.js index 65ac71ee0..4ffd43dcd 100644 --- a/install/ui/facet.js +++ b/install/ui/facet.js @@ -702,6 +702,18 @@ IPA.facet_group = function(spec) { return that.facets.get(name); }; + that.get_facet_index = function(name) { + return that.facets.get_key_index(name); + }; + + that.get_facet_by_index = function(index) { + return that.facets.get_value_by_index(index); + }; + + that.get_facet_count = function(index) { + return that.facets.length; + }; + return that; }; diff --git a/install/ui/hbactest.js b/install/ui/hbactest.js index b5bf3de2c..715c0449c 100644 --- a/install/ui/hbactest.js +++ b/install/ui/hbactest.js @@ -204,22 +204,31 @@ IPA.hbac.test_facet = function(spec) { style: 'float: right' }).appendTo(container); - that.back_button = IPA.button({ - name: 'back', - label: 'Back', - click: function() { - if (!that.back_button.hasClass('action-button-disabled')) { - that.back(); + var facet_group = that.entity.get_facet_group('default'); + var index = facet_group.get_facet_index(that.name); + + if (index > 0) { + that.back_button = IPA.button({ + name: 'back', + label: 'Back', + icon: 'ui-icon ui-icon-triangle-1-w', + click: function() { + if (!that.back_button.hasClass('action-button-disabled')) { + that.back(); + } + return false; } - return false; - } - }).appendTo(buttons); + }).appendTo(buttons); + + buttons.append(' '); + } that.next_button = IPA.button({ name: 'next', label: 'Next', + icon: 'ui-icon ui-icon-triangle-1-e', click: function() { - if (!that.add_button.hasClass('action-button-disabled')) { + if (!that.next_button.hasClass('action-button-disabled')) { that.next(); } return false; @@ -227,6 +236,30 @@ IPA.hbac.test_facet = function(spec) { }).appendTo(buttons); }; + that.back = function() { + var facet_group = that.entity.get_facet_group('default'); + var index = facet_group.get_facet_index(that.name); + if (index <= 0) return; + + var facet = facet_group.get_facet_by_index(index - 1); + + var state = {}; + state[that.entity.name+'-facet'] = facet.name; + IPA.nav.push_state(state); + }; + + that.next = function() { + var facet_group = that.entity.get_facet_group('default'); + var index = facet_group.get_facet_index(that.name); + if (index >= facet_group.get_facet_count() - 1) return; + + var facet = facet_group.get_facet_by_index(index + 1); + + var state = {}; + state[that.entity.name+'-facet'] = facet.name; + IPA.nav.push_state(state); + }; + that.get_pkeys = function(data) { var result = data.result.result; var pkey_name = that.managed_entity.metadata.primary_key; @@ -261,7 +294,7 @@ IPA.hbac.test_facet = function(spec) { command.on_success = function(data, text_status, xhr) { if (that.filter) that.filter.focus(); - that.load(data); // table_facet.load() + that.load(data); }; command.on_error = function(xhr, text_status, error_thrown) { @@ -271,6 +304,10 @@ IPA.hbac.test_facet = function(spec) { command.execute(); }; + that.reset = function() { + that.table.set_values([]); + }; + that.save = function(record) { if (that.selected_values && that.selected_values.length) { record[that.name] = that.selected_values[0]; @@ -336,6 +373,11 @@ IPA.hbac.test_rules_facet = function(spec) { that.create_buttons(container); }; + that.reset = function() { + that.table.set_values([]); + if (that.enabled) that.enabled.attr('checked', false); + if (that.disabled) that.enabled.attr('checked', false); + }; that.save = function(record) { if (that.selected_values && that.selected_values.length) { @@ -409,6 +451,7 @@ IPA.hbac.test_run_facet = function(spec) { that.back_button = IPA.button({ name: 'back', label: 'Back', + icon: 'ui-icon ui-icon-triangle-1-w', click: function() { if (!that.back_button.hasClass('action-button-disabled')) { that.back(); @@ -417,6 +460,8 @@ IPA.hbac.test_run_facet = function(spec) { } }).appendTo(buttons); + buttons.append(' '); + that.new_test_button = IPA.button({ name: 'new_test', label: 'New Test', @@ -429,6 +474,36 @@ IPA.hbac.test_run_facet = function(spec) { }).appendTo(buttons); }; + that.new_test = function() { + var facet = that.entity.get_facet('user'); + facet.reset(); + + facet = that.entity.get_facet('targethost'); + facet.reset(); + + facet = that.entity.get_facet('service'); + facet.reset(); + + facet = that.entity.get_facet('sourcehost'); + facet.reset(); + + facet = that.entity.get_facet('rules'); + facet.reset(); + + facet = that.entity.get_facet('run'); + facet.reset(); + + var state = {}; + state[that.entity.name+'-facet'] = 'user'; + IPA.nav.push_state(state); + }; + + that.reset = function() { + that.test_result.text(''); + that.table.empty(); + that.table.set_values([]); + }; + that.refresh = function() { }; diff --git a/install/ui/ipa.css b/install/ui/ipa.css index 76d90166b..189539816 100644 --- a/install/ui/ipa.css +++ b/install/ui/ipa.css @@ -126,12 +126,6 @@ body { font-size: 11px; } -.input_link { - text-decoration: none; - position: relative; - cursor: pointer; -} - .icon { display: inline-block; height: 16px; @@ -950,10 +944,6 @@ a, .ui-widget-content a { padding: 0.4em 1em; } -[title=">>"] { - margin-top: 1em !important; -} - span.sub-nav-off > a:link, span.sub-nav-off > a:visited{ color:white; } @@ -967,17 +957,27 @@ span.main-separator{ padding:0.1em; } +.button { + text-decoration: none; + cursor: pointer; + display: inline-block; + height: 18px; +} + +.button-label { + padding: 0 0.2em; + display: inline-block; + height: 16px; + line-height: 16px; +} + .action-button { background: none; - background-image:none; + background-image: none; font-family: "Liberation Sans", Arial, sans-serif; font-size: 0.9em; } -.action-button .button-label { - padding: 0 0.2em; -} - .action-button-disabled { color: gray; cursor: default; @@ -1068,7 +1068,7 @@ table.scrollable tbody { left: 0; right: 0; height: 3em; - line-height: 3em; + line-height: 18px; } .adder-dialog-top input[name=filter] { @@ -1151,6 +1151,10 @@ table.scrollable tbody { text-align: center; } +.adder-dialog-buttons .button { + position: relative; +} + .adder-dialog-internal { background-color: #ffffff; border: none; diff --git a/install/ui/jquery.ordered-map.js b/install/ui/jquery.ordered-map.js index ea61b954d..f30f8d137 100755 --- a/install/ui/jquery.ordered-map.js +++ b/install/ui/jquery.ordered-map.js @@ -44,7 +44,7 @@ jQuery.ordered_map = jQuery.fn.ordered_map = function() { that.remove = function(key) { - var i = that.keys.indexOf(key); + var i = that.get_key_index(key); if (i<0) return null; that.keys.splice(i, 1); @@ -63,5 +63,17 @@ jQuery.ordered_map = jQuery.fn.ordered_map = function() { that.length = that.keys.length; }; + that.get_key_index = function(key) { + return that.keys.indexOf(key); + }; + + that.get_key_by_index = function(index) { + return that.keys[index]; + }; + + that.get_value_by_index = function(index) { + return that.values[index]; + }; + return that; }; diff --git a/install/ui/widget.js b/install/ui/widget.js index 63b2c5495..0b3581569 100644 --- a/install/ui/widget.js +++ b/install/ui/widget.js @@ -1792,7 +1792,7 @@ IPA.button = function(spec) { name: spec.name, href: spec.href || '#' + (spec.name || 'button'), title: spec.title || spec.label, - 'class': 'ui-state-default ui-corner-all input_link', + 'class': 'ui-state-default ui-corner-all button', style: spec.style, click: spec.click, blur: spec.blur |