summaryrefslogtreecommitdiffstats
path: root/ogcp/templates/actions
diff options
context:
space:
mode:
authorAlejandro Sirgo Rica <asirgo@soleta.eu>2024-09-10 13:33:05 +0200
committerAlejandro Sirgo Rica <asirgo@soleta.eu>2024-09-10 15:11:11 +0200
commit6b33268b5c03db29cb003acb4e2042c9254402d2 (patch)
treecb6ceec1c3949177efa592a1466f8d26a9f21667 /ogcp/templates/actions
parenta1b164b1062eb7ba6b724ebe84d8d7e0b308e234 (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')
-rw-r--r--ogcp/templates/actions/repo_set.html69
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 %}