From a996d36f2d363c80655d78db322ec5f2539eeb68 Mon Sep 17 00:00:00 2001
From: Patrick Jentsch <p.jentsch@uni-bielefeld.de>
Date: Mon, 26 Oct 2020 13:04:12 +0100
Subject: [PATCH] Rework jobs package

---
 web/app/templates/jobs/job.html.j2 | 275 +++++++++++++++--------------
 1 file changed, 138 insertions(+), 137 deletions(-)

diff --git a/web/app/templates/jobs/job.html.j2 b/web/app/templates/jobs/job.html.j2
index 70cf4736..20fda0f3 100644
--- a/web/app/templates/jobs/job.html.j2
+++ b/web/app/templates/jobs/job.html.j2
@@ -1,168 +1,171 @@
 {% extends "nopaque.html.j2" %}
-
-{% set headline = '<i class="left material-icons service" data-service="{service}" style="font-size: inherit;"></i>Job ({service}) - {title}'.format(service=job.service, title=job.title) %}
+{% from '_constants.html.j2' import COLORS %}
 
 {% if job.service == 'file-setup' %}
+  {% set border_color = COLORS.file_setup_darken %}
   {% set main_class = 'file-setup-color lighten' %}
+  {% set scheme_color = COLORS.file_setup_darken %}
 {% elif job.service == 'nlp' %}
+  {% set border_color = COLORS.nlp_darken %}
   {% set main_class = 'nlp-color lighten' %}
+  {% set scheme_color = COLORS.nlp_darken %}
 {% elif job.service == 'ocr' %}
+  {% set border_color = COLORS.ocr_darken %}
   {% set main_class = 'ocr-color lighten' %}
+  {% set scheme_color = COLORS.ocr_darken %}
 {% endif %}
-{% block page_content %}
 
-{% if job.service == 'file-setup' %}
-  {{ Macros.insert_color_scheme(file_setup_color_darken) }}
-  {% set border_color = file_setup_color_darken %}
-{% elif job.service == 'nlp' %}
-  {{ Macros.insert_color_scheme(nlp_color_darken) }}
-  {% set border_color = nlp_color_darken %}
-{% elif job.service == 'ocr' %}
-  {{ Macros.insert_color_scheme(ocr_color_darken) }}
-  {% set border_color = ocr_color_darken %}
-{% endif %}
+{% block main_attribs %} class="{{ main_class }}"{% endblock main_attribs %}
 
-<div class="col s12">
-  <div class="card" style="border-top: 10px solid {{border_color}}">
-    <div class="card-content">
-      <div class="row">
-        <div class="col s8 m9 l10">
-          <span class="card-title title">{{ job.title }}</span>
-        </div>
+{% block page_content %}
+<div class="container">
+  <div class="row">
+    <div class="col s12">
+      <h1><i class="left material-icons service" data-service="{{ job.service }}" style="font-size: inherit;"></i>Job ({{ job.service }}) - {{ job.title }}</h1>
+    </div>
 
-        <div class="col s4 m3 l2 right-align">
-          <span class="chip status white-text"></span>
-          <div class="active preloader-wrapper small" id="progress-indicator">
-            <div class="spinner-layer spinner-blue-only">
-              <div class="circle-clipper left">
-                <div class="circle"></div>
-              </div>
-              <div class="gap-patch">
-                <div class="circle"></div>
-              </div>
-              <div class="circle-clipper right">
-                <div class="circle"></div>
+    <div class="col s12">
+      <div class="card" style="border-top: 10px solid {{border_color}}">
+        <div class="card-content">
+          <div class="row">
+            <div class="col s8 m9 l10">
+              <span class="card-title title">{{ job.title }}</span>
+            </div>
+
+            <div class="col s4 m3 l2 right-align">
+              <span class="chip status white-text"></span>
+              <div class="active preloader-wrapper small" id="progress-indicator">
+                <div class="spinner-layer spinner-blue-only">
+                  <div class="circle-clipper left">
+                    <div class="circle"></div>
+                  </div>
+                  <div class="gap-patch">
+                    <div class="circle"></div>
+                  </div>
+                  <div class="circle-clipper right">
+                    <div class="circle"></div>
+                  </div>
+                </div>
               </div>
             </div>
-          </div>
-        </div>
 
-        <div class="col s12">
-          <p class="description">{{ job.description }}</p>
-        </div>
+            <div class="col s12">
+              <p class="description">{{ job.description }}</p>
+            </div>
 
-        <div class="col s12">&nbsp;</div>
+            <div class="col s12">&nbsp;</div>
 
-        <div class="col s12 m6">
-          <div class="input-field">
-            <input disabled id="creation-date" type="text" value="{{ job.creation_date.strftime('%d/%m/%Y, %H:%M:%S %p') }}">
-            <label for="creation-date">Creation date</label>
-          </div>
-        </div>
+            <div class="col s12 m6">
+              <div class="input-field">
+                <input disabled id="creation-date" type="text" value="{{ job.creation_date.strftime('%d/%m/%Y, %H:%M:%S %p') }}">
+                <label for="creation-date">Creation date</label>
+              </div>
+            </div>
 
-        <div class="col s12 m6">
-          <div class="input-field">
-            <input class="end-date" disabled id="end-date" type="text" value="">
-            <label for="end-date">End date</label>
-          </div>
-        </div>
+            <div class="col s12 m6">
+              <div class="input-field">
+                <input class="end-date" disabled id="end-date" type="text" value="">
+                <label for="end-date">End date</label>
+              </div>
+            </div>
 
-        <div class="col s12 m4">
-          <div class="input-field">
-            <input disabled id="service" type="text" value="{{ job.service }}">
-            <label for="service">Service</label>
-          </div>
-        </div>
+            <div class="col s12 m4">
+              <div class="input-field">
+                <input disabled id="service" type="text" value="{{ job.service }}">
+                <label for="service">Service</label>
+              </div>
+            </div>
 
-        <div class="col s12 m4">
-          <div class="input-field">
-            <input disabled id="service-args" type="text" value="{{ job.service_args|e }}">
-            <label for="service-args">Service arguments</label>
-          </div>
-        </div>
+            <div class="col s12 m4">
+              <div class="input-field">
+                <input disabled id="service-args" type="text" value="{{ job.service_args|e }}">
+                <label for="service-args">Service arguments</label>
+              </div>
+            </div>
 
-        <div class="col s12 m4">
-          <div class="input-field">
-            <input disabled id="service-version" type="text" value="{{ job.service_version }}">
-            <label for="service-version">Service version</label>
+            <div class="col s12 m4">
+              <div class="input-field">
+                <input disabled id="service-version" type="text" value="{{ job.service_version }}">
+                <label for="service-version">Service version</label>
+              </div>
+            </div>
           </div>
         </div>
+        <div class="card-action right-align">
+          {% if current_user.is_administrator() and job.status == 'failed' %}
+          <a href="{{ url_for('jobs.restart', job_id=job.id) }}" class="btn waves-effect waves-light"><i class="material-icons left">repeat</i>Restart</a>
+          {% endif %}
+          <!-- <a href="#" class="btn disabled waves-effect waves-light"><i class="material-icons left">settings</i>Export Parameters</a> -->
+          <a data-target="delete-job-modal" class="waves-effect waves-light btn red modal-trigger"><i class="material-icons left">delete</i>Delete</a>
+        </div>
       </div>
     </div>
-    <div class="card-action right-align">
-      {% if current_user.is_administrator() and job.status == 'failed' %}
-      <a href="{{ url_for('jobs.restart', job_id=job.id) }}" class="btn waves-effect waves-light"><i class="material-icons left">repeat</i>Restart</a>
-      {% endif %}
-      <!-- <a href="#" class="btn disabled waves-effect waves-light"><i class="material-icons left">settings</i>Export Parameters</a> -->
-      <a data-target="delete-job-modal" class="waves-effect waves-light btn red modal-trigger"><i class="material-icons left">delete</i>Delete</a>
-    </div>
-  </div>
-</div>
 
-<div class="col s12">
-  <div class="card">
-    <div class="card-content" id="inputs">
-      <div class="row">
-        <div class="col s12 m2">
-          <span class="card-title"><i class="left material-icons" style="font-size: inherit;">input</i>Inputs</span>
-          <p>Original input files.</p>
-        </div>
-        <div class="col s12 m10">
-          <ul class="pagination paginationTop"></ul>
-          <table class="highlight responsive-table">
-            <thead>
-              <tr>
-                <th class="sort" data-sort="filename">Filename</th>
-                <th>{# Actions #}</th>
-              </tr>
-            </thead>
-            <tbody class="list">
-            </tbody>
-          </table>
-          <ul class="pagination paginationBottom"></ul>
+    <div class="col s12">
+      <div class="card">
+        <div class="card-content" id="inputs">
+          <div class="row">
+            <div class="col s12 m2">
+              <span class="card-title"><i class="left material-icons" style="font-size: inherit;">input</i>Inputs</span>
+              <p>Original input files.</p>
+            </div>
+            <div class="col s12 m10">
+              <ul class="pagination paginationTop"></ul>
+              <table class="highlight responsive-table">
+                <thead>
+                  <tr>
+                    <th class="sort" data-sort="filename">Filename</th>
+                    <th>{# Actions #}</th>
+                  </tr>
+                </thead>
+                <tbody class="list">
+                </tbody>
+              </table>
+              <ul class="pagination paginationBottom"></ul>
+            </div>
+          </div>
         </div>
       </div>
     </div>
-  </div>
-</div>
 
-<div class="col s12">
-  <div class="card">
-    <div class="card-content">
-      <div class="row">
-        <div class="col s12 m2">
-          <span class="card-title"><i class="left material-icons" style="font-size: inherit;">done</i>Results</span>
-          <p>Processed result files.</p>
-        </div>
-        <div class="col s12 m10">
-          <table class="highlight responsive-table">
-            <thead>
-              <tr>
-                <th>Result Type</th>
-                <th>Archive Name</th>
-                <th>{# Actions #}</th>
-              </tr>
-            </thead>
-            <tbody class="results">
-              <tr class="show-if-only-child">
-                <td colspan="3">
-                  <span class="card-title">
-                    <i class="left material-icons" style="font-size: inherit;">file_download</i>Nothing here...
-                  </span>
-                  <p>
-                    No results available (yet). Is the job already completed?
-                  </p>
-                </td>
-              </tr>
-            </tbody>
-          </table>
+    <div class="col s12">
+      <div class="card">
+        <div class="card-content">
+          <div class="row">
+            <div class="col s12 m2">
+              <span class="card-title"><i class="left material-icons" style="font-size: inherit;">done</i>Results</span>
+              <p>Processed result files.</p>
+            </div>
+            <div class="col s12 m10">
+              <table class="highlight responsive-table">
+                <thead>
+                  <tr>
+                    <th>Result Type</th>
+                    <th>Archive Name</th>
+                    <th>{# Actions #}</th>
+                  </tr>
+                </thead>
+                <tbody class="results">
+                  <tr class="show-if-only-child">
+                    <td colspan="3">
+                      <span class="card-title">
+                        <i class="left material-icons" style="font-size: inherit;">file_download</i>Nothing here...
+                      </span>
+                      <p>
+                        No results available (yet). Is the job already completed?
+                      </p>
+                    </td>
+                  </tr>
+                </tbody>
+              </table>
+            </div>
+          </div>
         </div>
       </div>
     </div>
   </div>
 </div>
 
-
 <!-- Modals -->
 <div id="delete-job-modal" class="modal">
   <div class="modal-content">
@@ -174,8 +177,10 @@
     <a class="btn modal-close red waves-effect waves-light" href="{{ url_for('jobs.delete_job', job_id=job.id) }}"><i class="material-icons left">delete</i>Delete</a>
   </div>
 </div>
+{% endblock page_content %}
 
-
+{% block scripts %}
+{{ super() }}
 <script type="module">
 import {RessourceList} from '../../static/js/nopaque.lists.js';
 class InformationUpdater {
@@ -309,13 +314,9 @@ class InformationUpdater {
 var informationUpdater = new InformationUpdater({{ job.id }}, false);
 {% else %}
 var informationUpdater = new InformationUpdater({{ job.id }}, true);
-document.addEventListener("DOMContentLoaded", () => {
-  nopaque.socket.emit("foreign_user_data_stream_init", {{ job.user_id }});
-});
+nopaque.socket.emit("foreign_user_data_stream_init", {{ job.user_id }});
 {% endif %}
 let jobInputsList = new RessourceList("inputs", null, "JobInput");
-document.addEventListener("DOMContentLoaded", () => {
-  jobInputsList._add({{ job_inputs|tojson|safe }});
-});
+jobInputsList._add({{ job_inputs|tojson|safe }});
 </script>
-{% endblock %}
+{% endblock scripts %}
-- 
GitLab