mirror of https://git.48k.eu/ogcp
Adapt images tree to work with several ogServers
Images view fetch images from all ogServers configured and show them in the left tree as a nested list. ogServers are represented as the parents of their images.async-tree
parent
873bee30aa
commit
c543ba25a6
|
@ -11,14 +11,20 @@
|
|||
{% endblock %}
|
||||
|
||||
{% block sidebar %}
|
||||
<ul id="images" class="nav flex-column nav-pills">
|
||||
{% for image in images %}
|
||||
<li id="{{ image["name"] }}_{{ image["id"] }}" class="nav-item">
|
||||
<input class="form-check-input" type="checkbox" form="imagesForm"
|
||||
value="{{ image["id"] }}"
|
||||
{% if image.get("selected", False) %}checked{% endif %}
|
||||
name="{{ image["name"] }}_{{ image["id"] }}" />
|
||||
{{ image["name"] }}
|
||||
<ul id="servers" class="nav flex-column nav-pills">
|
||||
{% for response in responses %}
|
||||
<li class="nav-item"><b>{{ response["server"]["name"] }}</b>
|
||||
<ul id="images" class="nav flex-column nav-pills">
|
||||
{% for image in response["json"]["images"] %}
|
||||
<li id="{{ image["name"] }}_{{ image["id"] }}" class="nav-item">
|
||||
<input class="form-check-input" type="checkbox" form="imagesForm"
|
||||
value="{{ image["id"] }}"
|
||||
{% if image.get("selected", False) %}checked{% endif %}
|
||||
name="{{ image["name"] }}_{{ image["id"] }}" />
|
||||
{{ image["name"] }}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
|
|
@ -1377,9 +1377,8 @@ def commands():
|
|||
@app.route('/images/', methods=['GET'])
|
||||
@login_required
|
||||
def images():
|
||||
r = g.server.get('/images')
|
||||
images = r.json()['images']
|
||||
return render_template('images.html', images=images)
|
||||
responses = multi_request('get', '/images')
|
||||
return render_template('images.html', responses=responses)
|
||||
|
||||
|
||||
@app.route('/repositories/', methods=['GET'])
|
||||
|
@ -1645,10 +1644,10 @@ def action_image_info():
|
|||
form.permissions.data = image['permissions']
|
||||
form.software_id.data = image['software_id']
|
||||
|
||||
images = g.server.get('/images').json()['images']
|
||||
responses = multi_request('get', '/images')
|
||||
|
||||
return render_template('actions/image_details.html', form=form,
|
||||
images=images)
|
||||
responses=responses)
|
||||
|
||||
@app.route('/action/image/delete', methods=['GET', 'POST'])
|
||||
@login_required
|
||||
|
@ -1671,14 +1670,14 @@ def action_image_delete():
|
|||
if not validate_elements(images, max_len=1):
|
||||
return redirect(url_for('images'))
|
||||
image_name, image_id = images[0]
|
||||
r = g.server.get('/images')
|
||||
responses = multi_request('get', '/images')
|
||||
form.ids.data = image_id
|
||||
if not validate_elements(images, max_len=1):
|
||||
flash(_('Please select one image to delete'), category='error')
|
||||
return redirect(url_for('images'))
|
||||
return render_template('actions/delete_image.html', form=form,
|
||||
image_name=image_name.split('_', 1)[0], image_id=image_id,
|
||||
images=r.json()['images'])
|
||||
responses=responses)
|
||||
|
||||
@app.route('/action/log', methods=['GET'])
|
||||
@login_required
|
||||
|
|
Loading…
Reference in New Issue