diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2011-07-22 13:24:27 +0200 |
---|---|---|
committer | Adam Young <ayoung@redhat.com> | 2011-07-25 23:06:59 -0400 |
commit | 9a4ce988df219565ab84602b1eea93e14700862b (patch) | |
tree | caaf240eec6c5e0ed38d8a7990d5a6cc8f02ae2b | |
parent | 9e7a3e7f3c46f8c2fc0b54353efd642b4178abf7 (diff) | |
download | freeipa-9a4ce988df219565ab84602b1eea93e14700862b.tar.gz freeipa-9a4ce988df219565ab84602b1eea93e14700862b.tar.xz freeipa-9a4ce988df219565ab84602b1eea93e14700862b.zip |
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.
-rw-r--r-- | install/ui/details.js | 8 | ||||
-rw-r--r-- | install/ui/dns.js | 34 | ||||
-rw-r--r-- | ipalib/plugins/internal.py | 3 |
3 files changed, 43 insertions, 2 deletions
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() { + $('<p/>', { + 'text': IPA.messages.objects.dnsrecord.deleted_no_data + }).appendTo(that.container); + $('<p/>', { + '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(){ diff --git a/ipalib/plugins/internal.py b/ipalib/plugins/internal.py index 6f279834a..8556d941c 100644 --- a/ipalib/plugins/internal.py +++ b/ipalib/plugins/internal.py @@ -160,6 +160,8 @@ class i18n_messages(Command): "dnsrecord": { "type":_("Record Type"), "data":_("Data"), + "deleted_no_data":_("DNS record was deleted because it contained no data."), + "redirection_dnszone":_("You will be redirected to DNS Zone."), "title":_("Records for DNS Zone"), }, "entitle": { @@ -348,6 +350,7 @@ class i18n_messages(Command): "dirty_message":_("This page has unsaved changes. Please save or revert."), "dirty_title":_("Dirty"), "hide_already_enrolled":_("Hide already enrolled."), + "redirection":_("Redirection"), "remove_empty":_("Select entries to be removed."), "remove_title":_("Remove ${entity}"), "prospective":_("Prospective"), |