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("");
|
||||
|
||||
+4
-3
@@ -250,17 +250,16 @@
|
||||
<table class="batch-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Charge</th>
|
||||
<th
|
||||
class="batch-th-sort"
|
||||
onclick="sortBatches('name')"
|
||||
onclick="sortBatches('batch_id')"
|
||||
>
|
||||
Name
|
||||
<span class="sort-arrow" id="sortArrowName"
|
||||
>▲</span
|
||||
>
|
||||
</th>
|
||||
<th>Transport</th>
|
||||
<th>Beschreibung</th>
|
||||
<th
|
||||
class="batch-th-sort"
|
||||
onclick="sortBatches('state')"
|
||||
@@ -271,6 +270,8 @@
|
||||
id="sortArrowState"
|
||||
></span>
|
||||
</th>
|
||||
<th>Send</th>
|
||||
<th>Offen</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="batchList">
|
||||
|
||||
@@ -1169,6 +1169,14 @@ tbody td {
|
||||
color: #92400e;
|
||||
}
|
||||
|
||||
.batch-num-cell {
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: var(--text);
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.batch-empty {
|
||||
text-align: center;
|
||||
color: var(--text-muted);
|
||||
|
||||
Reference in New Issue
Block a user