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) {
diff --git a/app/templates/dashboard.html b/app/templates/dashboard.html
index 588c3d4..fa77882 100644
--- a/app/templates/dashboard.html
+++ b/app/templates/dashboard.html
@@ -123,7 +123,7 @@
@@ -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');
@@ -314,4 +320,29 @@
+
+
+
+
+
+
+
+
Update in progress ..
+
+
+
+
+
+
+
+
{% endblock %}
diff --git a/app/views.py b/app/views.py
index dd3d8a1..d7b15a1 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()
@@ -473,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'])
@@ -542,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
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