This commit is contained in:
oliver
2026-08-03 09:24:56 -03:00
parent d9f3c8a747
commit 738e44e1a0
3 changed files with 33 additions and 19 deletions
+21 -16
View File
@@ -488,7 +488,7 @@ function switchTab(tab) {
});
if (tab === "batches") {
batchStateFilter.value = "!done";
sortField = "name";
sortField = "batch_id";
sortAsc = true;
loadBatches();
}
@@ -523,15 +523,11 @@ async function loadBatches() {
const data = await parseJson(res);
console.log("[HR] Batches response:", data);
// Response can be { data: [...] } or an array wrapping it
if (data && Array.isArray(data.data)) {
// Response is a flat array of batch objects
if (Array.isArray(data)) {
allBatches = data;
} else if (data && Array.isArray(data.data)) {
allBatches = data.data;
} else if (
Array.isArray(data) &&
data.length > 0 &&
Array.isArray(data[0].data)
) {
allBatches = data[0].data;
} else {
allBatches = [];
}
@@ -544,6 +540,14 @@ async function loadBatches() {
}
}
// Description can be a string or an object like { en_US: "...", de_DE: "..." }
function getDescription(desc) {
if (!desc) return "";
if (typeof desc === "string") return desc;
// Prefer de_DE, fall back to en_US, then any value
return desc.de_DE || desc.en_US || Object.values(desc)[0] || "";
}
function sortBatches(field) {
if (sortField === field) {
sortAsc = !sortAsc;
@@ -568,10 +572,10 @@ function renderBatches() {
// Text search
if (!query) return true;
const desc = getDescription(b.description);
return (
(b.name && b.name.toLowerCase().includes(query)) ||
(b.description && b.description.toLowerCase().includes(query)) ||
(b.carrier && b.carrier.toLowerCase().includes(query))
(b.batch_id && b.batch_id.toLowerCase().includes(query)) ||
(desc && desc.toLowerCase().includes(query))
);
});
@@ -590,7 +594,7 @@ function renderBatches() {
if (filtered.length === 0) {
batchList.innerHTML =
'<tr><td colspan="4" class="batch-empty">No batches match</td></tr>';
'<tr><td colspan="5" class="batch-empty">No batches match</td></tr>';
return;
}
@@ -598,10 +602,11 @@ function renderBatches() {
.map(
(b) => `
<tr class="${b.state === "done" ? "batch-row-done" : ""}">
<td><span class="batch-charge-cell">${esc(b.name)}</span></td>
<td><span class="batch-name-cell">${esc(b.description || "")}</span></td>
<td><span class="batch-carrier-cell">${esc(b.carrier || "")}</span></td>
<td><span class="batch-charge-cell">${esc(b.batch_id)}</span></td>
<td><span class="batch-name-cell">${esc(getDescription(b.description))}</span></td>
<td><span class="batch-state-cell batch-state-${esc(b.state || "open")}">${esc(b.state || "open")}</span></td>
<td><span class="batch-num-cell">${esc(String(b.gepackt ?? ""))}</span></td>
<td><span class="batch-num-cell">${esc(String(b.ungepackt ?? ""))}</span></td>
</tr>`,
)
.join("");