From 3bfd49a46543b5965298087fb6427e45760c4804 Mon Sep 17 00:00:00 2001 From: Endi Sukma Dewata Date: Thu, 12 Jan 2012 11:11:47 -0600 Subject: 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 --- install/ui/automount.js | 31 +++++++++++++------- install/ui/dns.js | 77 +++++++++++++++++++++++++------------------------ install/ui/search.js | 8 +---- 3 files changed, 61 insertions(+), 55 deletions(-) (limited to 'install') diff --git a/install/ui/automount.js b/install/ui/automount.js index 3deb6612..13d7bfa2 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 9873c139..6383d922 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 c98e0028..e541833c 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) { -- cgit