From 734a6d5b325c3765e01f61b1e9a0f4813d11b30b Mon Sep 17 00:00:00 2001 From: Jeroen Boonstra Date: Fri, 8 Jun 2018 11:46:17 +0200 Subject: [PATCH 1/7] Enable bg updates --- app/views.py | 7 ++++++- config_template.py | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/views.py b/app/views.py index 9fae83f..1e15aec 100644 --- a/app/views.py +++ b/app/views.py @@ -459,7 +459,12 @@ def saml_logout(): @app.route('/dashboard', methods=['GET', 'POST']) @login_required def dashboard(): - d = Domain().update() + if not app.config.get('BG_DOMAIN_UPDATES'): + logging.debug('Update domains in foreground') + d = Domain().update() + else: + logging.debug('Update domains in background') + # stats for dashboard domain_count = Domain.query.count() diff --git a/config_template.py b/config_template.py index a481cac..9d25fd9 100644 --- a/config_template.py +++ b/config_template.py @@ -130,3 +130,6 @@ DNSSEC_ADMINS_ONLY = False # EXPERIMENTAL FEATURES PRETTY_IPV6_PTR = False + +# Domain updates in background, for big installations +BG_DOMAIN_UPDATES = False From 8b2083be77812a0071cecd141caf1d75e6c63043 Mon Sep 17 00:00:00 2001 From: Jeroen Boonstra Date: Fri, 8 Jun 2018 13:21:17 +0200 Subject: [PATCH 2/7] Add domain refresh endpoint --- app/views.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/views.py b/app/views.py index 1e15aec..0f18aa1 100644 --- a/app/views.py +++ b/app/views.py @@ -547,6 +547,17 @@ def dashboard_domains(): } return jsonify(response_data) +@app.route('/dashboard-domains-updater', methods=['GET', 'POST']) +@login_required +def dashboard_domains_updater(): + logging.debug('Update domains in background') + d = Domain().update() + + response_data = { + "result": d, + } + return jsonify(response_data) + @app.route('/domain/', methods=['GET', 'POST']) @login_required From 39d3a4d6ac8ecb31038bde5145efe114be057f17 Mon Sep 17 00:00:00 2001 From: Jeroen Boonstra Date: Fri, 8 Jun 2018 13:22:03 +0200 Subject: [PATCH 3/7] add bg settings for button --- app/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views.py b/app/views.py index 0f18aa1..47ddc64 100644 --- a/app/views.py +++ b/app/views.py @@ -478,7 +478,7 @@ def dashboard(): else: uptime = 0 - return render_template('dashboard.html', domain_count=domain_count, users=users, history_number=history_number, uptime=uptime, histories=history, dnssec_adm_only=app.config['DNSSEC_ADMINS_ONLY'], pdns_version=app.config['PDNS_VERSION']) + return render_template('dashboard.html', domain_count=domain_count, users=users, history_number=history_number, uptime=uptime, histories=history, dnssec_adm_only=app.config['DNSSEC_ADMINS_ONLY'], pdns_version=app.config['PDNS_VERSION'], show_bg_domain_button=app.config['BG_DOMAIN_UPDATES']) @app.route('/dashboard-domains', methods=['GET']) From 97329618543fc78deaeecc52eb80d490f961f3cc Mon Sep 17 00:00:00 2001 From: Jeroen Boonstra Date: Fri, 8 Jun 2018 13:23:04 +0200 Subject: [PATCH 4/7] Add refesh button --- app/templates/dashboard.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/templates/dashboard.html b/app/templates/dashboard.html index 588c3d4..f88cc70 100644 --- a/app/templates/dashboard.html +++ b/app/templates/dashboard.html @@ -123,7 +123,7 @@
-

Hosted Domains

+

Hosted Domains

{% if show_bg_domain_button %}{% endif %}
From e334749382ecbe67aad97cffcf47fb53ca3d124a Mon Sep 17 00:00:00 2001 From: Jeroen Boonstra Date: Fri, 8 Jun 2018 13:25:21 +0200 Subject: [PATCH 5/7] Add dialog for refresh status --- app/templates/dashboard.html | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/app/templates/dashboard.html b/app/templates/dashboard.html index f88cc70..1955a06 100644 --- a/app/templates/dashboard.html +++ b/app/templates/dashboard.html @@ -314,4 +314,29 @@ + {% endblock %} From 689b25817ca06dda0f50bd4cd1c4f62ce0f5fa4f Mon Sep 17 00:00:00 2001 From: Jeroen Boonstra Date: Fri, 8 Jun 2018 13:25:43 +0200 Subject: [PATCH 6/7] Add action to dialog --- app/templates/dashboard.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/templates/dashboard.html b/app/templates/dashboard.html index 1955a06..fa77882 100644 --- a/app/templates/dashboard.html +++ b/app/templates/dashboard.html @@ -199,6 +199,12 @@ modal.modal('show'); }); + $(document.body).on('click', '.refresh-bg-button', function() { + var modal = $("#modal_bg_reload"); + modal.modal('show'); + reload_domains($SCRIPT_ROOT + '/dashboard-domains-updater'); + }); + $(document.body).on("click", ".button_template", function (e) { var modal = $("#modal_template"); var domain = $(this).prop('id'); From 18133ab19cd14510ffa8b3aa56837b0eb1510407 Mon Sep 17 00:00:00 2001 From: Jeroen Boonstra Date: Fri, 8 Jun 2018 13:26:06 +0200 Subject: [PATCH 7/7] Add ajax call for refresh --- app/static/custom/js/custom.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/static/custom/js/custom.js b/app/static/custom/js/custom.js index 279463d..6442bb2 100644 --- a/app/static/custom/js/custom.js +++ b/app/static/custom/js/custom.js @@ -212,6 +212,13 @@ function getdnssec(url, domain){ }); } +function reload_domains(url) { + $.getJSON(url, function(data) { + $('#modal_bg_reload_content').html(" Finished: " + data['result']['msg']); + }) +} + + // pretty JSON json_library = { replacer: function(match, pIndent, pKey, pVal, pEnd) {