Skip to content
Snippets Groups Projects
Commit 269368e9 authored by Stephan Porada's avatar Stephan Porada :speech_balloon:
Browse files

Fix missing RessourceList import.

parent ad21fe17
No related branches found
No related tags found
No related merge requests found
...@@ -157,145 +157,146 @@ ...@@ -157,145 +157,146 @@
</div> </div>
<script> <script type="module">
class InformationUpdater { import {RessourceList} from '../../static/js/nopaque.lists.js';
constructor(jobId, foreignJobFlag) { class InformationUpdater {
this.jobId = jobId; constructor(jobId, foreignJobFlag) {
this.foreignJobFlag = foreignJobFlag; this.jobId = jobId;
this.foreignJobFlag = foreignJobFlag;
if (this.foreignJobFlag) { if (this.foreignJobFlag) {
nopaque.foreignJobsSubscribers.push(this); nopaque.foreignJobsSubscribers.push(this);
} else { } else {
nopaque.jobsSubscribers.push(this); nopaque.jobsSubscribers.push(this);
}
} }
}
_init() { _init() {
let job; let job;
job = (this.foreignJobFlag ? nopaque.foreignUser.jobs[this.jobId] job = (this.foreignJobFlag ? nopaque.foreignUser.jobs[this.jobId]
: nopaque.user.jobs[this.jobId]); : nopaque.user.jobs[this.jobId]);
// Results // Results
this.addResults(job.results); this.addResults(job.results);
// End date // End date
this.setEndDate(job.end_date); this.setEndDate(job.end_date);
// Status // Status
this.setStatus(job.status); this.setStatus(job.status);
} }
_update(patch) { _update(patch) {
let pathArray; let pathArray;
for (let operation of patch) { for (let operation of patch) {
/* "/jobs/{jobId}/..." -> ["{jobId}", ...] */ /* "/jobs/{jobId}/..." -> ["{jobId}", ...] */
pathArray = operation.path.split("/").slice(2); pathArray = operation.path.split("/").slice(2);
if (pathArray[0] != this.jobId) {continue;} if (pathArray[0] != this.jobId) {continue;}
switch(operation.op) { switch(operation.op) {
case "add": case "add":
if (pathArray[1] === "results") { if (pathArray[1] === "results") {
this.addResults([operation.value]); this.addResults([operation.value]);
} }
break; break;
case "delete": case "delete":
location.reload(); location.reload();
break; break;
case "replace": case "replace":
if (pathArray[1] === "end_date") { if (pathArray[1] === "end_date") {
this.setEndDate(operation.value); this.setEndDate(operation.value);
} else if (pathArray[1] === "status") { } else if (pathArray[1] === "status") {
this.setStatus(operation.value); this.setStatus(operation.value);
} }
break; break;
default: default:
break; break;
}
} }
} }
}
addResults(results) { addResults(results) {
let resultsArray, resultsElements, resultsHTML, resultType; let resultsArray, resultsElements, resultsHTML, resultType;
resultsArray = Object.values(results); resultsArray = Object.values(results);
resultsArray.sort(function (a, b) { resultsArray.sort(function (a, b) {
if (a.filename < b.filename) {return -1;} if (a.filename < b.filename) {return -1;}
if (a.filename > b.filename) {return 1;} if (a.filename > b.filename) {return 1;}
return 0; return 0;
}); });
resultsHTML = ``; resultsHTML = ``;
for (let result of resultsArray) { for (let result of resultsArray) {
if (result.filename.endsWith(".pdf.zip")) { if (result.filename.endsWith(".pdf.zip")) {
resultType = "PDF file with text layer"; resultType = "PDF file with text layer";
} else if (result.filename.endsWith(".txt.zip")) { } else if (result.filename.endsWith(".txt.zip")) {
resultType = "Raw text files"; resultType = "Raw text files";
} else if (result.filename.endsWith(".vrt.zip")) { } else if (result.filename.endsWith(".vrt.zip")) {
resultType = "VRT(XML dialect) files holding the NLP data"; resultType = "VRT(XML dialect) files holding the NLP data";
} else if (result.filename.endsWith(".xml.zip")) { } else if (result.filename.endsWith(".xml.zip")) {
resultType = "XML files"; resultType = "XML files";
} else if (result.filename.endsWith(".poco.zip")) { } else if (result.filename.endsWith(".poco.zip")) {
resultType = "HCOR und image files needed for Post correction(PoCo)"; resultType = "HCOR und image files needed for Post correction(PoCo)";
} else { } else {
resultType = "All result files created during this job"; resultType = "All result files created during this job";
} }
resultsHTML += `
<tr>
<td>${resultType}</td>
<td>${result.filename}</td>
<td class="right-align">
<a class="btn-floating tooltipped waves-effect waves-light"
download href="/jobs/${result.job_id}/results/${result.id}/download"
data-position="top"
data-tooltip="Download">
<i class="material-icons">file_download</i>
</a>
</td>
</tr>
`;
};
resultsHTML += ` resultsHTML += `
</tbody> <tr>
</table> <td>${resultType}</td>
<td>${result.filename}</td>
<td class="right-align">
<a class="btn-floating tooltipped waves-effect waves-light"
download href="/jobs/${result.job_id}/results/${result.id}/download"
data-position="top"
data-tooltip="Download">
<i class="material-icons">file_download</i>
</a>
</td>
</tr>
`; `;
resultsElements = document.querySelectorAll(".results"); };
for (let resultsElement of resultsElements) { resultsHTML += `
resultsElement.innerHTML += resultsHTML; </tbody>
} </table>
`;
resultsElements = document.querySelectorAll(".results");
for (let resultsElement of resultsElements) {
resultsElement.innerHTML += resultsHTML;
} }
}
setEndDate(timestamp) { setEndDate(timestamp) {
let endDate; let endDate;
if (timestamp === null) { if (timestamp === null) {
endDate = "N.a."; endDate = "N.a.";
} else { } else {
endDate = new Date(timestamp * 1000).toLocaleString("en-US"); endDate = new Date(timestamp * 1000).toLocaleString("en-US");
}
document.getElementById("end-date").value = endDate;
M.updateTextFields();
} }
document.getElementById("end-date").value = endDate;
M.updateTextFields();
}
setStatus(status) { setStatus(status) {
let progressIndicator, statusElements; let progressIndicator, statusElements;
if (status === "complete" || status === "failed") { if (status === "complete" || status === "failed") {
progressIndicator = document.getElementById("progress-indicator"); progressIndicator = document.getElementById("progress-indicator");
progressIndicator.classList.add("hide"); progressIndicator.classList.add("hide");
} }
statusElements = document.querySelectorAll(".status"); statusElements = document.querySelectorAll(".status");
for (let statusElement of statusElements) { for (let statusElement of statusElements) {
statusElement.dataset.status = status; statusElement.dataset.status = status;
}
} }
} }
}
{% if job.creator == current_user %} {% if job.creator == current_user %}
var informationUpdater = new InformationUpdater({{ job.id }}, false); var informationUpdater = new InformationUpdater({{ job.id }}, false);
{% else %} {% else %}
var informationUpdater = new InformationUpdater({{ job.id }}, true); var informationUpdater = new InformationUpdater({{ job.id }}, true);
document.addEventListener("DOMContentLoaded", () => { 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 %} {% endif %}
let jobInputsList = new RessourceList("inputs", null, "JobInput"); let jobInputsList = new RessourceList("inputs", null, "JobInput");
document.addEventListener("DOMContentLoaded", () => { document.addEventListener("DOMContentLoaded", () => {
jobInputsList._add({{ job_inputs|tojson|safe }}); jobInputsList._add({{ job_inputs|tojson|safe }});
}); });
</script> </script>
{% endblock %} {% endblock %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment