diff options
-rw-r--r-- | ogcp/templates/images.html | 2 | ||||
-rw-r--r-- | ogcp/views.py | 17 |
2 files changed, 19 insertions, 0 deletions
diff --git a/ogcp/templates/images.html b/ogcp/templates/images.html index 3faa029..e198e6c 100644 --- a/ogcp/templates/images.html +++ b/ogcp/templates/images.html @@ -27,5 +27,7 @@ {% block commands %} <input class="btn btn-light" type="submit" value="{{ _('Image details') }}" form="imagesForm" formaction="{{ url_for('action_image_info') }}" formmethod="get"> + <input class="btn btn-light" type="submit" value="{{ _('Delete image') }}" + form="imagesForm" formaction="{{ url_for('action_image_delete') }}" formmethod="post"> {% endblock %} diff --git a/ogcp/views.py b/ogcp/views.py index 1999644..a42642f 100644 --- a/ogcp/views.py +++ b/ogcp/views.py @@ -801,3 +801,20 @@ def action_image_info(): form.software_id.data = image['software_id'] return render_template('actions/image_details.html', form=form) + +@app.route('/action/image/delete', methods=['POST']) +@login_required +def action_image_delete(): + ids = parse_elements(request.form.to_dict()) + if not validate_elements(ids, max_len=1): + return redirect(url_for('images')) + + id = ids.pop() + payload = {'image': id} + r = g.server.post('/image/delete', payload) + if r.status_code != requests.codes.ok: + flash(_('OgServer replied with a non ok status code'), category='error') + else: + flash(_('Delete client request processed successfully'), category='info') + return redirect(url_for('images')) + |