From 31a13c9e9849eca794aa7908bc252185c4b36678 Mon Sep 17 00:00:00 2001 From: Pavel Vomacka Date: Wed, 22 Jun 2016 18:13:27 +0200 Subject: Add button for dns_update_system_records command Part of: https://fedorahosted.org/freeipa/ticket/5905 Reviewed-By: Petr Vobornik Reviewed-By: Petr Spacek --- 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 c086251a8..2d424aeae 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 49eca4de9..8060d6993 100644 --- a/install/ui/test/data/ipa_init.json +++ b/install/ui/test/data/ipa_init.json @@ -317,7 +317,10 @@ "forward_first": "Forward first", "forward_none": "Forwarding disabled", "forward_only": "Forward only", - "options": "Options" + "options": "Options", + "update_dns": "Update System DNS Records", + "update_dns_dialog_msg": "Do you want to update system DNS records?", + "updated_dns": "System DNS records updated" }, "dnsrecord": { "data": "Data", diff --git a/ipaserver/plugins/internal.py b/ipaserver/plugins/internal.py index 5b0a3db37..204c153a8 100644 --- a/ipaserver/plugins/internal.py +++ b/ipaserver/plugins/internal.py @@ -462,6 +462,9 @@ class i18n_messages(Command): "forward_none": _("Forwarding disabled"), "forward_only": _("Forward only"), "options": _("Options"), + "update_dns": _("Update System DNS Records"), + "update_dns_dialog_msg": _("Do you want to update system DNS records?"), + "updated_dns": _("System DNS records updated"), }, "dnsrecord": { "data": _("Data"), -- cgit