forked from enviPath/enviPy
[Feature] Show Multi Gen Eval + Batch Prediction (#267)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch> Reviewed-on: enviPath/enviPy#267
This commit is contained in:
@ -3,7 +3,9 @@
|
||||
{% block content %}
|
||||
|
||||
{% block action_modals %}
|
||||
{# {% include "modals/objects/refresh_job_log.html" %}#}
|
||||
{% if job.is_result_downloadable %}
|
||||
{% include "modals/objects/download_job_result_modal.html" %}
|
||||
{% endif %}
|
||||
{% endblock action_modals %}
|
||||
|
||||
<div class="space-y-2 p-4">
|
||||
@ -49,22 +51,20 @@
|
||||
<div class="collapse-arrow bg-base-200 collapse">
|
||||
<input type="checkbox" checked />
|
||||
<div class="collapse-title text-xl font-medium">Description</div>
|
||||
<div class="collapse-content">
|
||||
Status page for Task {{ job.job_name }}
|
||||
</div>
|
||||
<div class="collapse-content">Status page for Job {{ job.job_name }}</div>
|
||||
</div>
|
||||
|
||||
<!-- Job Status -->
|
||||
<div class="collapse-arrow bg-base-200 collapse">
|
||||
<input type="checkbox" checked />
|
||||
<div class="collapse-title text-xl font-medium">Task Status</div>
|
||||
<div class="collapse-title text-xl font-medium">Job Status</div>
|
||||
<div class="collapse-content">{{ job.status }}</div>
|
||||
</div>
|
||||
|
||||
<!-- Job ID -->
|
||||
<div class="collapse-arrow bg-base-200 collapse">
|
||||
<input type="checkbox" checked />
|
||||
<div class="collapse-title text-xl font-medium">Task ID</div>
|
||||
<div class="collapse-title text-xl font-medium">Job ID</div>
|
||||
<div class="collapse-content">{{ job.task_id }}</div>
|
||||
</div>
|
||||
|
||||
@ -72,7 +72,7 @@
|
||||
{% if job.is_in_terminal_state %}
|
||||
<div class="collapse-arrow bg-base-200 collapse">
|
||||
<input type="checkbox" checked />
|
||||
<div class="collapse-title text-xl font-medium">Task Result</div>
|
||||
<div class="collapse-title text-xl font-medium">Job Result</div>
|
||||
<div class="collapse-content">
|
||||
{% if job.job_name == 'engineer_pathways' %}
|
||||
<div class="card bg-base-100">
|
||||
@ -103,6 +103,68 @@
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{% elif job.job_name == 'batch_predict' %}
|
||||
<div
|
||||
id="table-container"
|
||||
class="overflow-x-auto overflow-y-auto max-h-96 border rounded-lg"
|
||||
></div>
|
||||
|
||||
<script>
|
||||
const input = `{{ job.task_result }}`;
|
||||
|
||||
function renderCsvTable(str) {
|
||||
const lines = str
|
||||
.split("\n")
|
||||
.map((l) => l.trim())
|
||||
.filter(Boolean);
|
||||
const [headerLine, ...rows] = lines;
|
||||
|
||||
const headers = headerLine.split(",").map((h) => h.trim());
|
||||
|
||||
const table = document.createElement("table");
|
||||
table.className = "table table-zebra w-full";
|
||||
|
||||
const thead = document.createElement("thead");
|
||||
const headerRow = document.createElement("tr");
|
||||
|
||||
headers.forEach((h) => {
|
||||
const th = document.createElement("th");
|
||||
th.textContent = h;
|
||||
headerRow.appendChild(th);
|
||||
});
|
||||
|
||||
thead.appendChild(headerRow);
|
||||
|
||||
const tbody = document.createElement("tbody");
|
||||
|
||||
rows.forEach((rowStr) => {
|
||||
console.log(rowStr.split(","));
|
||||
console.log(headers);
|
||||
const row = document.createElement("tr");
|
||||
const cells = rowStr.split(",").map((c) => c.trim());
|
||||
|
||||
headers.forEach((_, i) => {
|
||||
const td = document.createElement("td");
|
||||
|
||||
const value = cells[i] || "";
|
||||
|
||||
td.textContent = value;
|
||||
|
||||
row.appendChild(td);
|
||||
});
|
||||
console.log(row);
|
||||
tbody.appendChild(row);
|
||||
});
|
||||
|
||||
table.appendChild(thead);
|
||||
table.appendChild(tbody);
|
||||
return table;
|
||||
}
|
||||
|
||||
document
|
||||
.getElementById("table-container")
|
||||
.appendChild(renderCsvTable(input));
|
||||
</script>
|
||||
{% else %}
|
||||
{{ job.parsed_result }}
|
||||
{% endif %}
|
||||
|
||||
Reference in New Issue
Block a user