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/actions/repo_set.html | |
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/actions/repo_set.html')
-rw-r--r-- | ogcp/templates/actions/repo_set.html | 69 |
1 files changed, 69 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 %} |