From 2ba80146e928e692b22c06e0a19f803cf27acb17 Mon Sep 17 00:00:00 2001
From: Patrick Jentsch
Date: Wed, 23 Oct 2019 08:35:15 +0200
Subject: [PATCH] Some prework for files from database update
---
app/models.py | 3 +-
app/templates/main/jobs/job.html.j2 | 55 +++++++++++++++++++++++++++--
2 files changed, 55 insertions(+), 3 deletions(-)
diff --git a/app/models.py b/app/models.py
index 7a2fe19b..f6fa08f6 100644
--- a/app/models.py
+++ b/app/models.py
@@ -274,7 +274,8 @@ class JobInput(db.Model):
def to_dict(self):
return {'id': self.id,
'filename': self.filename,
- 'job_id': self.job_id}
+ 'job_id': self.job_id,
+ 'results': [result.to_dict() for result in self.results]}
class JobResult(db.Model):
diff --git a/app/templates/main/jobs/job.html.j2 b/app/templates/main/jobs/job.html.j2
index c43ee3bb..8a8796a0 100644
--- a/app/templates/main/jobs/job.html.j2
+++ b/app/templates/main/jobs/job.html.j2
@@ -50,14 +50,45 @@
serviceArgsElement.value = this.job.service_args;
serviceVersionElement = document.getElementById("service-version");
serviceVersionElement.value = this.job.service_version;
- statusColor = JobList.STATUS_COLORS[this.job.status]
- || JobList.STATUS_COLORS['default'];
+ statusColor = JobList.STATUS_COLORS[this.job.status] || JobList.STATUS_COLORS['default'];
statusElement = document.getElementById("status");
statusElement.classList.add(statusColor);
statusElement.innerHTML = this.job.status;
titleElement = document.getElementById("title");
titleElement.innerHTML = this.job.title;
+ var downloadIconElement, fileElement, filesElement, input, inputDownloadElement, inputElement, result, resultDownloadElement, resultsElement;
+
+ filesElement = document.getElementById("files");
+ downloadIconElement = document.createElement("i");
+ downloadIconElement.classList.add("material-icons", "left");
+ downloadIconElement.innerText = "file_download";
+ for (input of this.job.inputs) {
+ fileElement = document.createElement("tr");
+ inputDownloadElement = document.createElement("a");
+ inputDownloadElement.classList.add("waves-effect", "waves-light", "btn-small");
+ inputDownloadElement.href = `/jobs/${this.job.id}/download?file=${input.filename}`;
+ inputDownloadElement.innerText = input.filename;
+ inputDownloadElement.appendChild(downloadIconElement.cloneNode(true));
+ inputElement = document.createElement("td");
+ inputElement.id = `input-${input.id}`;
+ inputElement.appendChild(inputDownloadElement);
+ resultsElement = document.createElement("td");
+ resultsElement.id = `results-${input.id}`;
+ // add_results(input);
+ for (result of input.results) {
+ resultDownloadElement = document.createElement("a");
+ resultDownloadElement.classList.add("waves-effect", "waves-light", "btn-small");
+ resultDownloadElement.href = `/jobs/${this.job.id}/download?file=output/${input.filename}/${result.filename}`;
+ resultDownloadElement.innerText = result.filename.split(".").slice(-1)[0];
+ resultDownloadElement.appendChild(downloadIconElement.cloneNode(true));
+ resultsElement.appendChild(resultDownloadElement);
+ }
+ fileElement.appendChild(inputElement);
+ fileElement.appendChild(resultsElement);
+ filesElement.appendChild(fileElement);
+ }
+
M.updateTextFields();
}
@@ -68,8 +99,17 @@
for (operation of patch) {
/* "/jobId/valueName" -> ["jobId", "valueName"] */
pathArray = operation.path.split("/").slice(1);
+ console.log(operation);
+ console.log(pathArray);
if (pathArray[0] != this.jobId) {continue;}
switch(operation.op) {
+ case "add":
+ switch(pathArray[1]) {
+ case "input":
+
+ break;
+ }
+ break;
case "delete":
location.reload();
break;
@@ -198,6 +238,17 @@
Files
+
+
+
+ Inputs |
+ Results |
+
+
+
+
+
+ Files old