From e7c1bf6e36826612d322d9662644dd276c77a159 Mon Sep 17 00:00:00 2001 From: Benjamin Bertrand <benjamin.bertrand@esss.se> Date: Thu, 28 Feb 2019 07:59:56 +0100 Subject: [PATCH] Clean networks view No need to use ajax to retrieve the content of simple tables. For Ansible groups, it takes some time to retrieve the data due to the list of hosts for each group to compute. We keep the ajax request so that the page is displayed quickly. We might switch to server side processing (like for hosts). JIRA INFRA-860 --- app/network/views.py | 30 ++++-------------------------- app/static/js/domains.js | 7 ------- app/static/js/scopes.js | 7 ------- app/templates/network/domains.html | 7 +++++++ app/templates/network/scopes.html | 12 ++++++++++++ 5 files changed, 23 insertions(+), 40 deletions(-) diff --git a/app/network/views.py b/app/network/views.py index 8705dca..2636b81 100644 --- a/app/network/views.py +++ b/app/network/views.py @@ -507,7 +507,8 @@ def create_ansible_group(): @bp.route("/domains") @login_required def list_domains(): - return render_template("network/domains.html") + domains = models.Domain.query.all() + return render_template("network/domains.html", domains=domains) @bp.route("/domains/create", methods=("GET", "POST")) @@ -533,7 +534,8 @@ def create_domain(): @bp.route("/scopes") @login_required def list_scopes(): - return render_template("network/scopes.html") + scopes = models.NetworkScope.query.all() + return render_template("network/scopes.html", scopes=scopes) @bp.route("/scopes/create", methods=("GET", "POST")) @@ -703,30 +705,6 @@ def retrieve_ips(subnet, prefix): return jsonify(data=data) -@bp.route("/_retrieve_scopes") -@login_required -def retrieve_scopes(): - data = [ - ( - scope.name, - scope.description, - scope.first_vlan, - scope.last_vlan, - scope.supernet, - str(scope.domain), - ) - for scope in models.NetworkScope.query.all() - ] - return jsonify(data=data) - - -@bp.route("/_retrieve_domains") -@login_required -def retrieve_domains(): - data = [(domain.name,) for domain in models.Domain.query.all()] - return jsonify(data=data) - - @bp.route("/_retrieve_groups") @login_required def retrieve_groups(): diff --git a/app/static/js/domains.js b/app/static/js/domains.js index c0a567f..777943f 100644 --- a/app/static/js/domains.js +++ b/app/static/js/domains.js @@ -1,13 +1,6 @@ $(document).ready(function() { var domains_table = $("#domains_table").DataTable({ - "ajax": function(data, callback, settings) { - $.getJSON( - $SCRIPT_ROOT + "/network/_retrieve_domains", - function(json) { - callback(json); - }); - }, "paging": false }); diff --git a/app/static/js/scopes.js b/app/static/js/scopes.js index 28a2432..4bb6305 100644 --- a/app/static/js/scopes.js +++ b/app/static/js/scopes.js @@ -1,13 +1,6 @@ $(document).ready(function() { var scopes_table = $("#scopes_table").DataTable({ - "ajax": function(data, callback, settings) { - $.getJSON( - $SCRIPT_ROOT + "/network/_retrieve_scopes", - function(json) { - callback(json); - }); - }, "paging": false }); diff --git a/app/templates/network/domains.html b/app/templates/network/domains.html index 0284c5f..fa86984 100644 --- a/app/templates/network/domains.html +++ b/app/templates/network/domains.html @@ -24,6 +24,13 @@ <th>Name</th> </tr> </thead> + <tbody> + {% for domain in domains %} + <tr> + <td>{{ domain.name }}</td> + </tr> + {% endfor %} + </tbody> </table> {%- endblock %} {%- endblock %} diff --git a/app/templates/network/scopes.html b/app/templates/network/scopes.html index a67676f..32a6b25 100644 --- a/app/templates/network/scopes.html +++ b/app/templates/network/scopes.html @@ -29,6 +29,18 @@ <th>Default domain</th> </tr> </thead> + <tbody> + {% for scope in scopes %} + <tr> + <td>{{ scope.name }}</td> + <td>{{ scope.description }}</td> + <td>{{ scope.first_vlan }}</td> + <td>{{ scope.last_vlan }}</td> + <td>{{ scope.supernet }}</td> + <td>{{ scope.domain }}</td> + </tr> + {% endfor %} + </tbody> </table> {%- endblock %} {%- endblock %} -- GitLab