From 97092955fb27c6aab94f5c9de6c26c2c5fa9e89c Mon Sep 17 00:00:00 2001
From: Andreas <andreasv@fsmpi.rwth-aachen.de>
Date: Thu, 8 Jun 2017 08:55:24 +0200
Subject: [PATCH] added option to clear all failed jobs

---
 jobs.py                      | 8 ++++++++
 templates/jobs_overview.html | 8 +++++---
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/jobs.py b/jobs.py
index 0341017..12f7ce9 100644
--- a/jobs.py
+++ b/jobs.py
@@ -34,6 +34,14 @@ def jobs_overview():
 	jobs = query('SELECT * FROM jobs WHERE (type like ?) AND (worker like ? OR (worker IS NULL AND ? = "%")) AND (state like ?) ORDER BY `time_created` DESC LIMIT ? OFFSET ?', filter['type'], filter['worker'], filter['worker'], filter['state'], pagesize, page*pagesize)
 	return render_template('jobs_overview.html',worker=worker,jobs=jobs, filter_values=filter_values, filter=filter, page=page, pagesize=pagesize, pagecount=pagecount)
 
+@app.route('/internal/jobs/action/<action>')
+@mod_required
+@csrf_protect
+def jobs_action(action):
+	if action == 'clear_failed':
+		query('UPDATE jobs SET state="deleted" WHERE state="failed"')
+	return redirect(request.values.get('ref', url_for('jobs_overview')))
+
 def jobs_api_token_required(func):
 	@wraps(func)
 	def decorator(*args, **kwargs):
diff --git a/templates/jobs_overview.html b/templates/jobs_overview.html
index 161aa6c..835bcbe 100644
--- a/templates/jobs_overview.html
+++ b/templates/jobs_overview.html
@@ -34,9 +34,11 @@
 	</div>
 	<div class="panel panel-default">
 		<div class="panel-heading">
-				<h1 class="panel-title">
-					Jobs
-				</h1>
+			<h1 class="panel-title">
+				Jobs
+				<a class="btn btn-default">Job(s) erzeugen</a>
+				<a class="btn btn-default" href="{{url_for('jobs_action', action='clear_failed', ref=request.url)}}" >Alle fehlgeschlagenen Jobs löschen</a>
+			</h1>
 		</div>
 		<div class="panel-collapse collapse in">
 			<div class="panel-body">
-- 
GitLab