diff --git a/install/ui/policy.js b/install/ui/policy.js
index 54a0f36ea..784f97cf1 100644
--- a/install/ui/policy.js
+++ b/install/ui/policy.js
@@ -124,68 +124,82 @@ IPA.records_facet = function (spec){
function add_click(){
- var add_dialog = $('
',{
- id: 'add_dns_resource_record',
+ var dialog = IPA.dialog({
title: IPA.messages.objects.dnsrecord.add
});
- var dl = $('
').appendTo(add_dialog);
- dl.append(''+IPA.messages.objects.dnsrecord.resource+'');
- dl.append( $('').
- append($('')));
- dl.append(''+IPA.messages.objects.dnsrecord.type+'');
- dl.append( $('').append(create_type_select('dns-record-type')));
- dl.append(''+IPA.messages.objects.dnsrecord.data+'');
- dl.append($('').append($('',{
- id: 'dns-record-data',
- rows:"8",
- cols:"20"
- })));
+ dialog.create = function() {
- function add(evt, called_from_add_and_edit) {
- var params = [];
- var options = {};
- function add_win(data, text_status, xhr) {
- reload();
- }
+ var dl = $('
').appendTo(dialog.container);
- function add_fail(data, text_status, xhr) {
- }
+ $('', {
+ html: IPA.messages.objects.dnsrecord.resource
+ }).appendTo(dl);
- params.push( $.bbq.getState(that.entity_name+'-pkey', true));
- params.push(add_dialog.find('#dns-record-resource').val());
+ var dd = $('').appendTo(dl);
- var key = add_dialog.find('#dns-record-type').val().toLowerCase()+
- "record";
- var value = add_dialog.find('#dns-record-data').val();
- options[key] = value;
+ dialog.resource = $('', {
+ type: 'text'
+ }).appendTo(dd);
+ $('', {
+ html: IPA.messages.objects.dnsrecord.type
+ }).appendTo(dl);
- IPA.cmd('dnsrecord_add', params, options, add_win, add_fail);
- //add_dialog.dialog('close');
- }
+ dd = $('').appendTo(dl);
- function add_and_close(evt) {
- add(evt, true);
- add_dialog.dialog('close');
- }
+ dialog.type = create_type_select('dns-record-type').appendTo(dd);
- function cancel() {
- add_dialog.dialog('close');
- }
+ $('', {
+ html: IPA.messages.objects.dnsrecord.data
+ }).appendTo(dl);
- var buttons = {};
+ dd = $('').appendTo(dl);
- buttons[IPA.messages.buttons.add_many] = add;
- buttons[IPA.messages.buttons.add_and_close] = add_and_close;
- buttons[IPA.messages.buttons.cancel] = cancel;
+ dialog.data = $('', {
+ rows: 8,
+ cols: 20
+ }).appendTo(dd);
+ };
- add_dialog.dialog({
- modal: true,
- buttons: buttons
+ dialog.add_button(IPA.messages.buttons.add_many, function() {
+ dialog.add();
});
- }
+ dialog.add_button(IPA.messages.buttons.add_and_close, function() {
+ dialog.add();
+ dialog.close();
+ });
+
+ dialog.add_button(IPA.messages.buttons.cancel, function() {
+ dialog.close();
+ });
+
+ dialog.add = function() {
+
+ var pkey = $.bbq.getState(that.entity_name+'-pkey', true);
+ var resource = dialog.resource.val();
+
+ var options = {};
+ var key = dialog.type.val().toLowerCase()+'record';
+ options[key] = dialog.data.val();
+
+ var command = IPA.command({
+ method: 'dnsrecord_add',
+ args: [pkey, resource],
+ options: options,
+ on_success: function(data, text_status, xhr) {
+ reload();
+ }
+ });
+
+ command.execute();
+ };
+
+ dialog.init();
+
+ dialog.open(that.container);
+ }
function delete_records(records_table){