diff --git a/extensions/directus-extension-skrift-produktion/dist/index.js b/extensions/directus-extension-skrift-produktion/dist/index.js index 2dfdcab..63c23b8 100644 --- a/extensions/directus-extension-skrift-produktion/dist/index.js +++ b/extensions/directus-extension-skrift-produktion/dist/index.js @@ -774,7 +774,7 @@ const Board = defineComponent({ } // Charge-Karte: fasst API-Aufträge (Kunde+Typ+Versandtag+Eingangstag) zusammen. - function chargeCard(c) { + function chargeCard(c, opts) { const auf = expandedCharges.value.has(c.key); let faelligFarbe = 'var(--background-subdued)'; if (c.faellig) { @@ -792,18 +792,27 @@ const Board = defineComponent({ c.versandtag ? chip('📅 ' + c.versandtag.charAt(0).toUpperCase() + c.versandtag.slice(1)) : null, c.faellig ? chip('⏰ fällig bis ' + dmY(c.faellig), faelligFarbe) : null, ]); - const body = auf ? h('div', { style: 'margin-top:12px;display:flex;flex-direction:column;gap:2px;' }, c.orders.map((o) => orderCard(o))) : null; + const body = auf ? h('div', { style: 'margin-top:12px;display:flex;flex-direction:column;gap:2px;' }, c.orders.map((o) => orderCard(o, opts))) : null; return h('div', { key: 'c' + c.key, style: CARD + `margin-bottom:14px;border-left:4px solid ${ACCENT};` }, [kopf, body]); } + // Aufträge einer Ansicht rendern: bei aktiver Suche als EINZELaufträge (damit + // man den konkreten Brief/Auftrag findet), sonst API-Aufträge zu Chargen + // gebündelt – in allen Status-Reitern gleich. + function renderGruppiert(list, opts) { + if (suche.value.trim()) return list.map((o) => orderCard(o, opts)); + const apiO = list.filter((o) => o.source === 'api'); + const restO = list.filter((o) => o.source !== 'api'); + return [ + ...bildeChargen(apiO).map((c) => chargeCard(c, opts)), + ...restO.map((o) => orderCard(o, opts)), + ]; + } + function tabInhalt() { if (tab.value === 'neu') { - // API-Aufträge zu Chargen bündeln; alles andere als Einzelkarten. - const apiOrders = neueOrders.value.filter((o) => o.source === 'api'); - const restOrders = neueOrders.value.filter((o) => o.source !== 'api'); const items = [ - ...bildeChargen(apiOrders).map(chargeCard), - ...restOrders.map((o) => orderCard(o)), + ...renderGruppiert(neueOrders.value), ...neueRequests.value.map(requestCard), ]; return items.length ? items : subdued('Nichts Neues.'); @@ -853,20 +862,20 @@ const Board = defineComponent({ } if (tab.value === 'druck') { const list = ordersByStatus('im_druck'); - return list.length ? list.map((o) => orderCard(o, { badges: true })) : subdued('Nichts im Druck.'); + return list.length ? renderGruppiert(list, { badges: true }) : subdued('Nichts im Druck.'); } if (tab.value === 'versendet') { const list = versendetAktiv(); - return list.length ? list.map((o) => orderCard(o)) : subdued('Nichts (kürzlich) versendet.'); + return list.length ? renderGruppiert(list) : subdued('Nichts (kürzlich) versendet.'); } if (tab.value === 'archiv') { const list = archivListe(); - return list.length ? list.map((o) => orderCard(o)) : subdued('Archiv leer.'); + return list.length ? renderGruppiert(list) : subdued('Archiv leer.'); } const map = { kuvertierung: 'kuvertieren', versandfertig: 'versandfertig' }; const st = map[tab.value]; const list = ordersByStatus(st); - return list.length ? list.map((o) => orderCard(o, { badges: st === 'kuvertieren' })) : subdued('Leer.'); + return list.length ? renderGruppiert(list, { badges: st === 'kuvertieren' }) : subdued('Leer.'); } // ── Modale rendern ──────────────────────────────────────────────────────