summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJose M. Guisado <jguisado@soleta.eu>2021-06-16 10:30:39 +0000
committerOpenGnSys Support Team <soporte-og@soleta.eu>2021-06-17 09:58:11 +0200
commit3667db8662c1ee2ae058627447c4eda1898621ab (patch)
tree337bfc1c453db27b780a4c352898bd5763b7c06b
parent514fb84a565e8bc9eb550164d545fa72d77c2b38 (diff)
Add commands view and macros.html
Commands view has a scope sidebar with the content block filled with command buttons (poweroff, wol, etc.) This commit leaves scope create/delete/update buttons in the /scopes view, which serves that purpose. To avoid duplicating scope tree creation macro, an external macros.html is created, this template can be imported. Future macros needed can be written in there.
-rw-r--r--ogcp/templates/commands.html44
-rw-r--r--ogcp/templates/macros.html19
-rw-r--r--ogcp/templates/nav.html2
-rw-r--r--ogcp/templates/scopes.html47
-rw-r--r--ogcp/views.py6
5 files changed, 73 insertions, 45 deletions
diff --git a/ogcp/templates/commands.html b/ogcp/templates/commands.html
new file mode 100644
index 0000000..27af1b1
--- /dev/null
+++ b/ogcp/templates/commands.html
@@ -0,0 +1,44 @@
+{% extends 'base.html' %}
+{% import "macros.html" as macros %}
+
+{% block nav_scopes %}active{% endblock %}
+
+{% block container %}
+ <form id="scopesForm">
+ <input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
+ </form>
+ {{ super() }}
+</form>
+{% endblock %}
+
+{% block sidebar %}
+ {{ macros.print_scopes_tree(scopes["scope"]) }}
+{% endblock %}
+
+{% block commands %}
+ <input class="btn btn-light" type="submit" value="{{ _('Power on (WoL)') }}"
+ form="scopesForm" formaction="{{ url_for('action_wol') }}" formmethod="get">
+ <input class="btn btn-light" type="submit" value="{{ _('Power off') }}"
+ form="scopesForm" formaction="{{ url_for('action_poweroff') }}" formmethod="post">
+ <input class="btn btn-light" type="submit" value="{{ _('Reboot') }}"
+ form="scopesForm" formaction="{{ url_for('action_reboot') }}" formmethod="post">
+ <input class="btn btn-light" type="submit" value="{{ _('Refresh') }}"
+ form="scopesForm" formaction="{{ url_for('action_refresh') }}" formmethod="post">
+ <input class="btn btn-light" type="submit" value="{{ _('Hardware') }}"
+ form="scopesForm" formaction="{{ url_for('action_hardware') }}" formmethod="get">
+ <input class="btn btn-light" type="submit" value="{{ _('Software') }}"
+ form="scopesForm" formaction="{{ url_for('action_software') }}" formmethod="get">
+ <input class="btn btn-light" type="submit" value="{{ _('Start session') }}"
+ form="scopesForm" formaction="{{ url_for('action_session') }}" formmethod="get">
+ <input class="btn btn-light" type="submit" value="{{ _('Restore Image') }}"
+ form="scopesForm" formaction="{{ url_for('action_image_restore') }}" formmethod="get">
+ <input class="btn btn-light" type="submit" value="{{ _('Partition & Format') }}"
+ form="scopesForm" formaction="{{ url_for('action_setup_show') }}" formmethod="get">
+ <input class="btn btn-light" type="submit" value="{{ _('Client details') }}"
+ form="scopesForm" formaction="{{ url_for('action_client_info') }}" formmethod="get">
+ <input class="btn btn-light" type="submit" value="{{ _('Create image') }}"
+ form="scopesForm" formaction="{{ url_for('action_image_create') }}" formmethod="get">
+ <input class="btn btn-light" type="submit" value="{{ _('Set boot mode') }}"
+ form="scopesForm" formaction="{{ url_for('action_mode') }}" formmethod="get">
+{% endblock %}
+
diff --git a/ogcp/templates/macros.html b/ogcp/templates/macros.html
new file mode 100644
index 0000000..d9d2997
--- /dev/null
+++ b/ogcp/templates/macros.html
@@ -0,0 +1,19 @@
+{% macro print_scopes_tree(scopes) -%}
+
+ <ul class="list-group list-group-flush">
+ {% for scope in scopes %}
+ <li class="list-group-item state--{{ scope['state'] | lower }}">
+ <input class="form-check-input" type="checkbox" form="scopesForm"
+ value="{{ " ".join(scope["ip"]) }}"
+ name="{{ scope["name"] }}_{{ scope["id"] }}">
+ {{ scope["name"] }}
+ {% if "state" in scope %}
+ -- STATE: {{ scope["state"] }}
+ {% endif %}
+ {{ print_scopes_tree(scope["scope"]) }}
+ </li>
+ {% endfor %}
+ </ul>
+
+{% endmacro %}
+
diff --git a/ogcp/templates/nav.html b/ogcp/templates/nav.html
index f2ca3b5..dc40207 100644
--- a/ogcp/templates/nav.html
+++ b/ogcp/templates/nav.html
@@ -14,7 +14,7 @@
<a class="nav-link" href="{{ url_for('scopes') }}">{{ _('Scopes') }}</a>
</li>
<li class="nav-item {% if request.endpoint == "commands" %}active{% endif %}">
- <a class="nav-link" href="#">{{ _('Commands') }}</a>
+ <a class="nav-link" href="{{ url_for('commands') }}">{{ _('Commands') }}</a>
</li>
<li class="nav-item {% if request.endpoint == "images" %}active{% endif %}">
<a class="nav-link" href="#">{{ _('Images') }}</a>
diff --git a/ogcp/templates/scopes.html b/ogcp/templates/scopes.html
index 00f6883..1d931bb 100644
--- a/ogcp/templates/scopes.html
+++ b/ogcp/templates/scopes.html
@@ -1,24 +1,7 @@
{% extends 'base.html' %}
-{% block nav_scopes %}active{% endblock %}
-
-{% macro print_scopes_tree(scopes) -%}
+{% import "macros.html" as macros %}
- <ul class="list-group list-group-flush">
- {% for scope in scopes %}
- <li class="list-group-item state--{{ scope['state'] | lower }}">
- <input class="form-check-input" type="checkbox" form="scopesForm"
- value="{{ " ".join(scope["ip"]) }}"
- name="{{ scope["name"] }}_{{ scope["id"] }}">
- {{ scope["name"] }}
- {% if "state" in scope %}
- -- STATE: {{ scope["state"] }}
- {% endif %}
- {{ print_scopes_tree(scope["scope"]) }}
- </li>
- {% endfor %}
- </ul>
-
-{% endmacro %}
+{% block nav_scopes %}active{% endblock %}
{% block container %}
<form id="scopesForm">
@@ -29,36 +12,12 @@
{% endblock %}
{% block sidebar %}
- {{ print_scopes_tree(scopes["scope"]) }}
+ {{ macros.print_scopes_tree(scopes["scope"]) }}
{% endblock %}
{% block commands %}
- <input class="btn btn-light" type="submit" value="{{ _('Power on (WoL)') }}"
- form="scopesForm" formaction="{{ url_for('action_wol') }}" formmethod="get">
- <input class="btn btn-light" type="submit" value="{{ _('Power off') }}"
- form="scopesForm" formaction="{{ url_for('action_poweroff') }}" formmethod="post">
- <input class="btn btn-light" type="submit" value="{{ _('Reboot') }}"
- form="scopesForm" formaction="{{ url_for('action_reboot') }}" formmethod="post">
- <input class="btn btn-light" type="submit" value="{{ _('Refresh') }}"
- form="scopesForm" formaction="{{ url_for('action_refresh') }}" formmethod="post">
- <input class="btn btn-light" type="submit" value="{{ _('Hardware') }}"
- form="scopesForm" formaction="{{ url_for('action_hardware') }}" formmethod="get">
- <input class="btn btn-light" type="submit" value="{{ _('Software') }}"
- form="scopesForm" formaction="{{ url_for('action_software') }}" formmethod="get">
- <input class="btn btn-light" type="submit" value="{{ _('Start session') }}"
- form="scopesForm" formaction="{{ url_for('action_session') }}" formmethod="get">
- <input class="btn btn-light" type="submit" value="{{ _('Restore Image') }}"
- form="scopesForm" formaction="{{ url_for('action_image_restore') }}" formmethod="get">
- <input class="btn btn-light" type="submit" value="{{ _('Partition & Format') }}"
- form="scopesForm" formaction="{{ url_for('action_setup_show') }}" formmethod="get">
- <input class="btn btn-light" type="submit" value="{{ _('Client details') }}"
- form="scopesForm" formaction="{{ url_for('action_client_info') }}" formmethod="get">
<input class="btn btn-light" type="submit" value="{{ _('Add client') }}"
form="scopesForm" formaction="{{ url_for('action_client_add') }}" formmethod="get">
- <input class="btn btn-light" type="submit" value="{{ _('Create image') }}"
- form="scopesForm" formaction="{{ url_for('action_image_create') }}" formmethod="get">
- <input class="btn btn-light" type="submit" value="{{ _('Set boot mode') }}"
- form="scopesForm" formaction="{{ url_for('action_mode') }}" formmethod="get">
<input class="btn btn-light" type="submit" value="{{ _('Add room') }}"
form="scopesForm" formaction="{{ url_for('action_room_add') }}" formmethod="get">
<input class="btn btn-light" type="submit" value="{{ _('Delete room') }}"
diff --git a/ogcp/views.py b/ogcp/views.py
index bb9eaeb..3e7c4e4 100644
--- a/ogcp/views.py
+++ b/ogcp/views.py
@@ -711,3 +711,9 @@ def action_room_delete():
for room in rooms]
form.room.choices = list(rooms)
return render_template('actions/delete_room.html', form=form)
+
+@app.route('/commands/', methods=['GET'])
+@login_required
+def commands():
+ scopes, clients = get_scopes()
+ return render_template('commands.html', scopes=scopes, clients=clients)