Hello,

please review attached patch.

Part of: https://fedorahosted.org/freeipa/ticket/5905

--
Pavel^3 Vomacka

From d8efa6ec479f61bde2dce321337d1ac6b8c75f74 Mon Sep 17 00:00:00 2001
From: Pavel Vomacka <pvoma...@redhat.com>
Date: Wed, 22 Jun 2016 18:13:27 +0200
Subject: [PATCH] Add button for dns_update_system_records command

Part of: https://fedorahosted.org/freeipa/ticket/5905
---
 install/ui/src/freeipa/dns.js      | 44 +++++++++++++++++++++++++++++++++++++-
 install/ui/test/data/ipa_init.json |  5 ++++-
 ipaserver/plugins/internal.py      |  3 +++
 3 files changed, 50 insertions(+), 2 deletions(-)

diff --git a/install/ui/src/freeipa/dns.js b/install/ui/src/freeipa/dns.js
index c086251a8730abd4824609e9bc54a590dd138b14..2d424aeae8ef735d02426a0f08b6261ec2f04c19 100644
--- a/install/ui/src/freeipa/dns.js
+++ b/install/ui/src/freeipa/dns.js
@@ -100,7 +100,9 @@ return {
                     ]
                 }
             ],
-            needs_update: true
+            needs_update: true,
+            actions: [ 'update_dns_records' ],
+            header_actions: [ 'update_dns_records' ]
         }
     ]
 };};
@@ -554,6 +556,45 @@ var make_dnsserver_spec = function() {
 };
 
 
+IPA.dns.update_dns_records_action = function(spec) {
+
+    spec = spec || {};
+
+    spec.name = spec.name || 'update_dns_records';
+    spec.label = spec.label || '@i18n:objects.dnsconfig.update_dns';
+
+    var that = IPA.action(spec);
+
+    that.execute_action = function() {
+        var spec = {
+            title: '@i18n:objects.dnsconfig.update_dns',
+            message: '@i18n:objects.dnsconfig.update_dns_dialog_msg',
+            ok_label: '@i18n:buttons.update'
+        };
+
+        that.dialog = IPA.confirm_dialog(spec);
+
+        that.dialog.on_ok = function() {
+
+            var command = rpc.command({
+                entity: 'dns',
+                method: 'update_system_records',
+                on_success: function(data) {
+                    var status = data.result.value;
+                    if (status) IPA.notify_success(
+                        '@i18n:objects.dnsconfig.updated_dns');
+                }
+            });
+
+            command.execute();
+        };
+
+        that.dialog.open();
+    };
+
+    return that;
+};
+
 IPA.dnszone_details_facet = function(spec, no_init) {
 
     spec = spec || {};
@@ -2617,6 +2658,7 @@ exp.register = function() {
 
     a.register('dns_add_permission', IPA.dns.add_permission_action);
     a.register('dns_remove_permission', IPA.dns.remove_permission_action);
+    a.register('update_dns_records', IPA.dns.update_dns_records_action);
 };
 
 phases.on('registration', exp.register);
diff --git a/install/ui/test/data/ipa_init.json b/install/ui/test/data/ipa_init.json
index 19fb1008e6eb6d75101fde42999614bda8bc4800..331f522b6fce4b15ecbc7785d345f6cc59d99866 100644
--- a/install/ui/test/data/ipa_init.json
+++ b/install/ui/test/data/ipa_init.json
@@ -310,7 +310,10 @@
                             "forward_first": "Forward first",
                             "forward_none": "Forwarding disabled",
                             "forward_only": "Forward only",
-                            "options": "Options"
+                            "options": "Options",
+                            "update_dns": "Update DNS Records",
+                            "update_dns_dialog_msg": "To confirm your intention to update DNS records, click the 'Update' button.",
+                            "updated_dns": "DNS records updated"
                         },
                         "dnsrecord": {
                             "data": "Data",
diff --git a/ipaserver/plugins/internal.py b/ipaserver/plugins/internal.py
index 826ecfa1129816323b08552a2fe40265e2b712e5..d469dae10958feedc55233a3b08972ffc875e844 100644
--- a/ipaserver/plugins/internal.py
+++ b/ipaserver/plugins/internal.py
@@ -449,6 +449,9 @@ class i18n_messages(Command):
                 "forward_none": _("Forwarding disabled"),
                 "forward_only": _("Forward only"),
                 "options": _("Options"),
+                "update_dns": _("Update DNS Records"),
+                "update_dns_dialog_msg": _("To confirm your intention to update DNS records, click the 'Update' button."),
+                "updated_dns": _("DNS records updated"),
             },
             "dnsrecord": {
                 "data": _("Data"),
-- 
2.5.5

-- 
Manage your subscription for the Freeipa-devel mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-devel
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code

Reply via email to