From 9a4ce988df219565ab84602b1eea93e14700862b Mon Sep 17 00:00:00 2001 From: Petr Vobornik Date: Fri, 22 Jul 2011 13:24:27 +0200 Subject: fixed empty dns record update https://fedorahosted.org/freeipa/ticket/1477 Redirection after updating empty DNS Record (which is deleted). Added hook to details facet for post update operation. --- install/ui/details.js | 8 +++++++- install/ui/dns.js | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 2 deletions(-) (limited to 'install/ui') diff --git a/install/ui/details.js b/install/ui/details.js index 50fccce49..8e0edaab9 100644 --- a/install/ui/details.js +++ b/install/ui/details.js @@ -245,6 +245,7 @@ IPA.details_facet = function(spec) { var that = IPA.facet(spec); that.pre_execute_hook = spec.pre_execute_hook; + that.post_update_hook = spec.post_update_hook; that.label = spec.label || IPA.messages && IPA.messages.facets && IPA.messages.facets.details; that.facet_group = spec.facet_group || 'settings'; @@ -526,7 +527,12 @@ IPA.details_facet = function(spec) { on_win(data, text_status, xhr); if (data.error) return; - + + if (that.post_update_hook) { + that.post_update_hook(data, text_status); + return; + } + var result = data.result.result; that.load(result); } diff --git a/install/ui/dns.js b/install/ui/dns.js index bba1e5cbf..7cef5ae72 100644 --- a/install/ui/dns.js +++ b/install/ui/dns.js @@ -265,7 +265,17 @@ IPA.entity_factories.dnsrecord = function() { return IPA.entity_builder(). entity('dnsrecord'). containing_entity('dnszone'). - details_facet({ + details_facet({ + post_update_hook:function(data){ + var result = data.result.result; + if (result.idnsname) { + this.load(result); + } else { + this.reset(); + var dialog = IPA.dnsrecord_redirection_dialog(); + dialog.open(this.container); + } + }, disable_breadcrumb: false, sections:[ { @@ -424,6 +434,28 @@ IPA.entity_factories.dnsrecord = function() { build(); }; +IPA.dnsrecord_redirection_dialog = function(spec) { + spec = spec || {}; + spec.title = spec.title || IPA.messages.dialogs.redirection; + + var that = IPA.dialog(spec); + + that.create = function() { + $('

', { + 'text': IPA.messages.objects.dnsrecord.deleted_no_data + }).appendTo(that.container); + $('

', { + 'text': IPA.messages.objects.dnsrecord.redirection_dnszone + }).appendTo(that.container); + }; + + that.add_button(IPA.messages.buttons.ok, function() { + that.close(); + IPA.nav.show_page('dnszone','default'); + }); + return that; +}; + IPA.dnsrecord_host_link_widget = function(spec){ var that = IPA.entity_link_widget(spec); that.other_pkeys = function(){ -- cgit