Batches
This commit is contained in:
@@ -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("");
|
||||
|
||||
Reference in New Issue
Block a user