diff --git a/ogcp/static/js/ogcp.js b/ogcp/static/js/ogcp.js
index bdd7581..d5615b8 100644
--- a/ogcp/static/js/ogcp.js
+++ b/ogcp/static/js/ogcp.js
@@ -248,3 +248,20 @@ function RemovePartition(evt) {
});
}
+function checkImageServer() {
+ const images = $('input:checkbox[form|="imagesForm"]:not(:hidden)')
+
+ images.on('change', function() {
+ const selectedServer = $('#' + $.escapeSelector(this.dataset.server));
+ const serversSelector = 'input:checkbox[name|="image-server"]';
+ const nonSelectedServers = $(serversSelector).not(selectedServer);
+
+ selectedServer.prop('checked', true);
+
+ nonSelectedServers.each(function() {
+ $(this).prop('checked', false);
+ const checkboxes = $('input:checkbox[data-server|="' + this.id + '"]');
+ checkboxes.prop('checked', false);
+ });
+ });
+}
diff --git a/ogcp/templates/images.html b/ogcp/templates/images.html
index 4231df2..d053913 100644
--- a/ogcp/templates/images.html
+++ b/ogcp/templates/images.html
@@ -8,17 +8,31 @@
{{ super() }}
+
+
{% endblock %}
{% block sidebar %}
{% for response in responses %}
+ {% set server_str = response["server"]["ip"] ~ ":" ~ response["server"]["port"] %}
+
- {{ response["server"]["name"] }}
{% for image in response["json"]["images"] %}
-
{{ image["name"] }}
@@ -41,4 +55,3 @@
{% endif %}
{% endblock %}
-
diff --git a/ogcp/views.py b/ogcp/views.py
index 3b0d134..c2a40b8 100644
--- a/ogcp/views.py
+++ b/ogcp/views.py
@@ -97,7 +97,7 @@ def validate_elements(elements, min_len=1, max_len=float('inf')):
def parse_elements(checkboxes_dict):
unwanted_elements = ['csrf_token', 'scope-server', 'scope-center',
- 'scope-room']
+ 'scope-room', 'image-server']
elements = set()
for key, elements_list in checkboxes_dict.items():
if key not in unwanted_elements:
@@ -1626,12 +1626,14 @@ def user_delete_post():
@login_required
def action_image_info():
form = ImageDetailsForm()
- ids = parse_elements(request.args.to_dict())
+ params = request.args.to_dict()
+ ids = parse_elements(params)
if not validate_elements(ids, max_len=1):
return redirect(url_for('images'))
id = ids.pop()
- r = g.server.get('/images')
+ server = get_server_from_ip_port(params['image-server'])
+ r = server.get('/images')
images = r.json()['images']
image = next(img for img in images if img['id'] == int(id))