diff options
author | Alejandro Sirgo Rica <asirgo@soleta.eu> | 2024-09-10 13:33:05 +0200 |
---|---|---|
committer | Alejandro Sirgo Rica <asirgo@soleta.eu> | 2024-09-10 15:11:11 +0200 |
commit | 6b33268b5c03db29cb003acb4e2042c9254402d2 (patch) | |
tree | cb6ceec1c3949177efa592a1466f8d26a9f21667 /ogcp/templates | |
parent | a1b164b1062eb7ba6b724ebe84d8d7e0b308e234 (diff) |
ogcp: add view to assign repo to clients
Add /action/repo/set in Commands to assign a repository to
multiple clients.
The view includes the actual repo assigned in the client pills
and shows a table with the clients grouped by repo when multiple
repos are assigned among the selected clients.
Diffstat (limited to 'ogcp/templates')
-rw-r--r-- | ogcp/templates/actions/repo_set.html | 69 | ||||
-rw-r--r-- | ogcp/templates/commands.html | 2 |
2 files changed, 71 insertions, 0 deletions
diff --git a/ogcp/templates/actions/repo_set.html b/ogcp/templates/actions/repo_set.html new file mode 100644 index 0000000..bdd7abf --- /dev/null +++ b/ogcp/templates/actions/repo_set.html @@ -0,0 +1,69 @@ +{% extends 'commands.html' %} +{% import "bootstrap/wtf.html" as wtf %} +{% import "macros.html" as macros %} + +{% set sidebar_state = 'disabled' %} +{% set btn_back = true %} + +{% block nav_setup %} active{% endblock %} +{% block content %} + +{% set ip_list = form.ips.data.split(' ') %} +{% set ip_count = ip_list | length %} +<h2 class="mx-5 subhead-heading"> + {{ _('Changing repository of %(ip_count)d computer(s)', ip_count=ip_count) }} +</h2> + +{{ macros.cmd_selected_clients(selected_clients) }} + +{% if repos_set|length > 1 %} +<div class="mx-5 form-group"> + <p>Selected clients have different ogLive</p> + + <table class="table table-hover"> + <thead class="thead-light"> + <tr> + <th>Repository</th> + <th>Clients</th> + </tr> + </thead> + <tbody class="text-left"> + {% for repo, clients in repos_set.items() %} + <tr> + <th>{{repo}}</th> + <td> + {% for ip in clients %}<div class="card d-inline-block" style="padding: 5px; margin: 3px;">{{ ip }}</div>{% endfor %} + </td> + </tr> + {% endfor %} + </tbody> + </table> +</div> +{% endif %} + +{{ wtf.quick_form(form, + action=url_for('action_repo_set'), + method='post', + button_map={'ok': 'primary'}, + extra_classes="m-5") }} + + +<!-- jQuery --> +<script src="{{ url_for('static', filename='AdminLTE/plugins/jquery/jquery.min.js') }}"></script> +<script> + var reposSet = {{ repos_set|tojson|safe }}; + // Update pill data + $('.badge-pill').each(function(index) { + for (const repo in reposSet) { + for (const clientName of reposSet[repo]) { + if ($(this).html().includes(clientName)) { + $(this).html($(this).html() + '<br>' + repo); + break; + } + } + } + }); +</script> + + +{% endblock %} diff --git a/ogcp/templates/commands.html b/ogcp/templates/commands.html index 48630ea..41a0917 100644 --- a/ogcp/templates/commands.html +++ b/ogcp/templates/commands.html @@ -40,6 +40,8 @@ <div class="dropdown-menu" aria-labelledby="dropdownMenuButton"> <input class="btn btn-light dropdown-item{% block nav_setup_set_bootmode %}{% endblock %}" type="submit" value="{{ _('Set boot mode') }}" form="scopesForm" formaction="{{ url_for('action_mode') }}" formmethod="get"> + <input class="btn btn-light dropdown-item{% block nav_setup_set_repo %}{% endblock %}" type="submit" value="{{ _('Set repository') }}" + form="scopesForm" formaction="{{ url_for('action_repo_set') }}" formmethod="get"> <input class="btn btn-light dropdown-item{% block nav_setup_set_oglive %}{% endblock %}" type="submit" value="{{ _('Set ogLive') }}" form="scopesForm" formaction="{{ url_for('action_oglive') }}" formmethod="get"> <input class="btn btn-light dropdown-item{% block nav_setup_setup %}{% endblock %}" type="submit" value="{{ _('Partition & Format') }}" |