From e40f1a9487ba966e540436eb3439cf7ab4bde6ae Mon Sep 17 00:00:00 2001
From: Tamas Gal <tgal@km3net.de>
Date: Mon, 30 Sep 2019 10:08:41 +0200
Subject: [PATCH] Allow logs to be downloaded

---
 app/routes.py            | 17 +++++++++++++----
 app/static/css/main.css  |  4 ++++
 app/templates/base.html  |  5 ++++-
 app/templates/logs.html  |  9 +++++----
 app/templates/plots.html |  2 +-
 5 files changed, 27 insertions(+), 10 deletions(-)

diff --git a/app/routes.py b/app/routes.py
index 890348f..005aa22 100644
--- a/app/routes.py
+++ b/app/routes.py
@@ -7,6 +7,7 @@ from app import app
 
 CONFIG_PATH = "pipeline.toml"
 PLOTS_PATH = "../plots"
+LOGS_PATH = "../logs"
 USERNAME = None
 PASSWORD = None
 app.config['FREEZER_DESTINATION'] = '../km3web'
@@ -154,14 +155,22 @@ def trigger():
 @app.route('/logs.html')
 @requires_auth
 def logs():
-    msg_logs = glob("logs/MSG*.log") 
-    return render_template('logs.html', logs=msg_logs)
+    msg_logs = map(basename,
+                   sorted(glob(join(app.root_path, LOGS_PATH, "MSG*.log"))))
+    return render_template('logs.html', filenames=msg_logs)
+
+
+@app.route('/logs/<path:filename>')
+@requires_auth
+def custom_static_logfile(filename):
+    filepath = join(app.root_path, LOGS_PATH)
+    print("Serving: {}/{}".format(filepath, filename))
+    return send_from_directory(join(app.root_path, LOGS_PATH), filename)
 
 
 @app.route('/plots/<path:filename>')
 @requires_auth
 def custom_static(filename):
-    print(filename)
     filepath = join(app.root_path, PLOTS_PATH)
-    print(filepath)
+    print("Serving: {}/{}".format(filepath, filename))
     return send_from_directory(join(app.root_path, PLOTS_PATH), filename)
diff --git a/app/static/css/main.css b/app/static/css/main.css
index cc4a28b..fbffa64 100644
--- a/app/static/css/main.css
+++ b/app/static/css/main.css
@@ -25,3 +25,7 @@ img.plot {
     height:100%;
     display: none;
 }
+
+#logs {
+    margin-top: 50px;
+}
diff --git a/app/templates/base.html b/app/templates/base.html
index 683e275..fb5423d 100644
--- a/app/templates/base.html
+++ b/app/templates/base.html
@@ -56,6 +56,9 @@
           <ul class="nav navbar-nav">
             <li class="active"><a href="compact.html">CMPCT</a></li>
           </ul>
+          <ul class="nav navbar-nav">
+            <li class="active"><a href="logs.html">Logs</a></li>
+          </ul>
           <ul class="nav navbar-nav">
             <li class="active"><a href="https://git.km3net.de/km3py/km3mon/issues">Issues</a></li>
           </ul>
@@ -71,7 +74,7 @@
     </nav>
 
     {% block infoheader %}{% endblock %}
-    {% block plots %}{% endblock %}
+    {% block main %}{% endblock %}
 
     <script type = "text/javascript">
       $(document).ready(function(){
diff --git a/app/templates/logs.html b/app/templates/logs.html
index 24ff332..cd77f7a 100644
--- a/app/templates/logs.html
+++ b/app/templates/logs.html
@@ -1,15 +1,16 @@
 {% extends "base.html" %}
 
-{% block logs %}
+{% block main %}
+
 
     <div class="container-fluid" id="logs">
-        {% for filename in logs %}
         <div class="row">
             <div class="col-md-12">
-		{{ filename }}
+                {% for filename in filenames %}
+                    <a href="/logs/{{ filename }}" class="btn btn-warning" role="button">{{ filename }}</a></button>
+                {% endfor %}
             </div>
         </div>
-        {% endfor %}
     </div>
 
 {% endblock %}
diff --git a/app/templates/plots.html b/app/templates/plots.html
index 5cd0b1d..9fbe6bc 100644
--- a/app/templates/plots.html
+++ b/app/templates/plots.html
@@ -6,7 +6,7 @@
     {% endif %}
 {% endblock %}
 
-{% block plots %}
+{% block main %}
 
     <div class="container-fluid" id="plots">
         {% for row in plots %}
-- 
GitLab