From 8e8ad513a73f8f08e2cfac1914ee0950b66f7866 Mon Sep 17 00:00:00 2001 From: "Endi S. Dewata" Date: Tue, 19 Jul 2011 11:11:36 -0500 Subject: Creating reverse zones from IP address. A custom adder dialog has been added for DNS zones to simplify creating reverse zones from IP address. The dialog provides a checkbox which indicates whether the content of the zone name field is an IP address. The IP address will be used to generate the reverse zone name and email address. Ticket #1045 --- install/ui/dns.js | 142 ++++++++++++++++++++++++++++++++++++- install/ui/test/data/ipa_init.json | 55 ++++++++++---- 2 files changed, 181 insertions(+), 16 deletions(-) (limited to 'install') diff --git a/install/ui/dns.js b/install/ui/dns.js index 58aeaddff..f01d2bb9c 100644 --- a/install/ui/dns.js +++ b/install/ui/dns.js @@ -80,15 +80,155 @@ IPA.entity_factories.dnszone = function() { }). standard_association_facets(). adder_dialog({ + factory: IPA.dnszone_adder_dialog, + width: 500, + height: 300, fields: [ 'idnsname', + { + factory: IPA.checkbox_widget, + name: 'name_from_ip', + undo: false + }, 'idnssoamname', 'idnssoarname', - {factory:IPA.force_dnszone_add_checkbox_widget}] + { + factory: IPA.force_dnszone_add_checkbox_widget + } + ] }). build(); }; +IPA.dnszone_adder_dialog = function(spec) { + + spec = spec || {}; + + var that = IPA.add_dialog(spec); + + that.create = function() { + + var table = $('').appendTo(that.container); + + var field = that.fields.get('idnsname'); + var tr = $('').appendTo(table); + + var td = $('').appendTo(table); + + td = $('').appendTo(table); + + td = $('
', { + style: 'vertical-align: top;', + title: field.label + }).appendTo(tr); + + td.append($('', { + style: 'vertical-align: top;' + }).appendTo(tr); + + var span = $('', { + name: field.name + }).appendTo(td); + + field.create(span); + field.field_span = span; + + field = that.fields.get('name_from_ip'); + tr = $('
', { + style: 'vertical-align: top;', + title: field.label + }).appendTo(tr); + + td = $('', { + style: 'vertical-align: top;' + }).appendTo(tr); + + span = $('', { + name: field.name + }).appendTo(td); + + td.append($('
', { + colspan: 2, + html: ' ' + }).appendTo(tr); + + var fields = that.fields.values; + for (var i=0; i').appendTo(table); + + td = $('', { + style: 'vertical-align: top;', + title: field.label + }).appendTo(tr); + + td.append($('', { + style: 'vertical-align: top;' + }).appendTo(tr); + + span = $('', { + name: field.name + }).appendTo(td); + + field.create(span); + field.field_span = span; + } + }; + + that.save = function(record) { + + var idnsname; + var name_from_ip; + + var fields = that.fields.values; + for (var i=0; i