diff options
author | Endi Sukma Dewata <edewata@redhat.com> | 2012-01-12 11:11:47 -0600 |
---|---|---|
committer | Petr VobornÃk <pvoborni@redhat.com> | 2012-01-16 12:24:22 +0100 |
commit | 3bfd49a46543b5965298087fb6427e45760c4804 (patch) | |
tree | e15c93f0ed3b5f4b90b6a5c7d929bafb8cae7c4a /install | |
parent | d50618f6bd032b59a1893f7eb23e47616efab8fe (diff) | |
download | freeipa-3bfd49a46543b5965298087fb6427e45760c4804.tar.gz freeipa-3bfd49a46543b5965298087fb6427e45760c4804.tar.xz freeipa-3bfd49a46543b5965298087fb6427e45760c4804.zip |
Fixed problem removing automount keys and DNS records.
Due to a recent change the deleting automount keys and DNS records no
longer worked. The functions that are supposed to get the selected
values has been fixed to use the correct names and element type. They
also have been converted into methods of the search facets.
Ticket #2256
Diffstat (limited to 'install')
-rw-r--r-- | install/ui/automount.js | 31 | ||||
-rw-r--r-- | install/ui/dns.js | 77 | ||||
-rw-r--r-- | install/ui/search.js | 8 |
3 files changed, 61 insertions, 55 deletions
diff --git a/install/ui/automount.js b/install/ui/automount.js index 3deb66129..13d7bfa2a 100644 --- a/install/ui/automount.js +++ b/install/ui/automount.js @@ -71,12 +71,12 @@ IPA.automount.map_entity = function(spec) { that.builder.containing_entity('automountlocation'). facet_groups([ 'automountkey', 'settings' ]). nested_search_facet({ + factory: IPA.automount.key_search_facet, facet_group: 'automountkey', nested_entity: 'automountkey', pagination: false, label: IPA.metadata.objects.automountkey.label, name: 'keys', - get_values: IPA.get_option_values, columns: [ { factory: IPA.automount_key_column, @@ -301,19 +301,28 @@ IPA.automountmap_adder_dialog = function(spec) { return that; }; -IPA.get_option_values = function(){ +IPA.automount.key_search_facet = function(spec) { - var values = []; - $('input[name="select"]:checked', this.table.tbody).each(function() { - var value = {}; - $('span',$(this).parent().parent()).each(function(){ - var name = this.attributes['name'].value; + var that = IPA.nested_search_facet(spec); - value[name] = $(this).text(); + that.get_selected_values = function() { + + var values = []; + + $('input[name="description"]:checked', that.table.tbody).each(function() { + var value = {}; + $('div', $(this).parent().parent()).each(function() { + var div = $(this); + var name = div.attr('name'); + value[name] = div.text(); + }); + values.push(value); }); - values.push (value); - }); - return values; + + return values; + }; + + return that; }; IPA.register('automountlocation', IPA.automount.location_entity); diff --git a/install/ui/dns.js b/install/ui/dns.js index 9873c1395..6383d9227 100644 --- a/install/ui/dns.js +++ b/install/ui/dns.js @@ -98,7 +98,6 @@ IPA.dns.zone_entity = function(spec) { pagination: false, title: IPA.metadata.objects.dnszone.label_singular, label: IPA.metadata.objects.dnsrecord.label, - get_values: IPA.dnsrecord_get_delete_values, columns: [ { name: 'idnsname', @@ -485,6 +484,46 @@ IPA.dns.record_search_facet = function(spec) { } }; + that.get_selected_values = function() { + + var values = []; + + var records = {}; + var value; + var record_type; + + $('input[name="idnsname"]:checked', that.table.tbody).each(function() { + $('div', $(this).parent().parent()).each(function() { + var div = $(this); + var name = div.attr('name'); + var text = div.text(); + + if (name === 'idnsname') { + value = records[text]; + if (!value) { + value = { pkey: text }; + records[text] = value; + } + } else if (name === 'type') { + record_type = text.toLowerCase()+'record'; + + } else if (name === 'data') { + if (!value[record_type]) { + value[record_type] = text; + } else { + value[record_type] += ',' + text; + } + } + }); + }); + + for (var key in records) { + values.push(records[key]); + } + + return values; + }; + return that; }; @@ -864,42 +903,6 @@ IPA.widget_factories['force_dnszone_add_checkbox'] = IPA.force_dnszone_add_check IPA.field_factories['force_dnszone_add_checkbox'] = IPA.checkbox_field; -IPA.dnsrecord_get_delete_values = function() { - - var records = {}; - var value; - var record_type; - $('input[name="select"]:checked', this.table.tbody).each(function() { - - $('span',$(this).parent().parent()).each(function(){ - var name = this.attributes['name'].value; - - if (name === 'idnsname'){ - value = records[$(this).text()]; - if (!value){ - value = {pkey:$(this).text()}; - records[$(this).text()] = value; - } - }else if (name === 'type'){ - record_type = $(this).text(); - }else if (name === 'data'){ - if (!value[record_type]){ - value[record_type] = $(this).text(); - }else{ - value[record_type] += "," + $(this).text(); - } - } - }); - }); - - var value_array = []; - for (var key in records){ - value_array.push(records[key]); - } - - return value_array; -}; - IPA.ip_address_validator = function(spec) { spec = spec || {}; diff --git a/install/ui/search.js b/install/ui/search.js index c98e00283..e541833c4 100644 --- a/install/ui/search.js +++ b/install/ui/search.js @@ -38,12 +38,6 @@ IPA.search_facet = function(spec) { var that = IPA.table_facet(spec); - function get_values() { - return that.table.get_selected_values(); - } - - that.get_values = spec.get_values || get_values; - var init = function() { that.init_table(that.managed_entity); @@ -127,7 +121,7 @@ IPA.search_facet = function(spec) { that.show_remove_dialog = function() { - var values = that.get_values(); + var values = that.get_selected_values(); var title; if (!values.length) { |