summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2011-07-22 13:24:27 +0200
committerAdam Young <ayoung@redhat.com>2011-07-25 23:06:59 -0400
commit9a4ce988df219565ab84602b1eea93e14700862b (patch)
treecaaf240eec6c5e0ed38d8a7990d5a6cc8f02ae2b
parent9e7a3e7f3c46f8c2fc0b54353efd642b4178abf7 (diff)
downloadfreeipa-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.js8
-rw-r--r--install/ui/dns.js34
-rw-r--r--ipalib/plugins/internal.py3
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"),