diff --git a/frontend/src/pages/AusruestungsanfrageDetail.tsx b/frontend/src/pages/AusruestungsanfrageDetail.tsx index 6a1b08a..71bf6a5 100644 --- a/frontend/src/pages/AusruestungsanfrageDetail.tsx +++ b/frontend/src/pages/AusruestungsanfrageDetail.tsx @@ -257,41 +257,41 @@ export default function AusruestungsanfrageDetail() { {editItems.map((item, idx) => ( - typeof o === 'string' ? o : o.bezeichnung} - value={item.artikel_id ? catalogItems.find(c => c.id === item.artikel_id) || item.bezeichnung : item.bezeichnung} - onChange={(_, v) => { - if (typeof v === 'string') { - updateEditItem(idx, 'bezeichnung', v); - updateEditItem(idx, 'artikel_id', undefined); - } else if (v) { - setEditItems(prev => prev.map((it, i) => i === idx ? { ...it, artikel_id: v.id, bezeichnung: v.bezeichnung } : it)); - loadEigenschaftenForItem(v.id); - setEditItemEigenschaftValues(prev => { const n = { ...prev }; delete n[idx]; return n; }); - } - }} - onInputChange={(_, val, reason) => { - if (reason === 'input') { - setEditItems(prev => prev.map((it, i) => i === idx ? { ...it, bezeichnung: val, artikel_id: undefined } : it)); - } - }} - renderInput={params => } - sx={{ flexGrow: 1 }} - /> - updateEditItem(idx, 'menge', Math.max(1, Number(e.target.value)))} - sx={{ width: 90 }} - inputProps={{ min: 1 }} - /> - removeEditItem(idx)}> - - + typeof o === 'string' ? o : o.bezeichnung} + value={item.artikel_id ? catalogItems.find(c => c.id === item.artikel_id) || item.bezeichnung : item.bezeichnung} + onChange={(_, v) => { + if (typeof v === 'string') { + updateEditItem(idx, 'bezeichnung', v); + updateEditItem(idx, 'artikel_id', undefined); + } else if (v) { + setEditItems(prev => prev.map((it, i) => i === idx ? { ...it, artikel_id: v.id, bezeichnung: v.bezeichnung } : it)); + loadEigenschaftenForItem(v.id); + setEditItemEigenschaftValues(prev => { const n = { ...prev }; delete n[idx]; return n; }); + } + }} + onInputChange={(_, val, reason) => { + if (reason === 'input') { + setEditItems(prev => prev.map((it, i) => i === idx ? { ...it, bezeichnung: val, artikel_id: undefined } : it)); + } + }} + renderInput={params => } + sx={{ flexGrow: 1 }} + /> + updateEditItem(idx, 'menge', Math.max(1, Number(e.target.value)))} + sx={{ width: 90 }} + inputProps={{ min: 1 }} + /> + removeEditItem(idx)}> + + {item.artikel_id && editItemEigenschaften[item.artikel_id]?.length > 0 && ( @@ -430,7 +430,7 @@ export default function AusruestungsanfrageDetail() { )} {p.geliefert && p.zuweisung_typ === 'keine' && ( - + )} {p.geliefert && p.zuweisung_typ === 'persoenlich' && ( diff --git a/frontend/src/pages/AusruestungsanfrageZuweisung.tsx b/frontend/src/pages/AusruestungsanfrageZuweisung.tsx index d0b1c63..7e5dda7 100644 --- a/frontend/src/pages/AusruestungsanfrageZuweisung.tsx +++ b/frontend/src/pages/AusruestungsanfrageZuweisung.tsx @@ -241,7 +241,7 @@ export default function AusruestungsanfrageZuweisung() { > Ausrüstung Persönlich - Nicht verfolgt + Nicht zuweisen {a.typ === 'ausruestung' && ( diff --git a/frontend/src/pages/PersoenlicheAusruestung.tsx b/frontend/src/pages/PersoenlicheAusruestung.tsx index ab34762..a9f8de8 100644 --- a/frontend/src/pages/PersoenlicheAusruestung.tsx +++ b/frontend/src/pages/PersoenlicheAusruestung.tsx @@ -102,166 +102,166 @@ function PersoenlicheAusruestungPage() { setActiveTab(v)} sx={{ mb: 3 }}> - {canApprove && } + {canApprove && } {activeTab === 0 && ( <> - {/* Filters */} - - setSearch(e.target.value)} - sx={{ minWidth: 200 }} - /> - setFilterZustand(e.target.value)} - sx={{ minWidth: 140 }} - > - Alle - {ZUSTAND_OPTIONS.map(([key, label]) => ( - {label} - ))} - - {canViewAll && ( - o.name} - value={memberOptions.find((m) => m.id === filterUser) ?? null} - onChange={(_e, v) => setFilterUser(v?.id ?? '')} - renderInput={(params) => } - sx={{ minWidth: 200 }} - /> - )} - - {filtered.length} {filtered.length === 1 ? 'Eintrag' : 'Einträge'} - - + {/* Filters */} + + setSearch(e.target.value)} + sx={{ minWidth: 200 }} + /> + setFilterZustand(e.target.value)} + sx={{ minWidth: 140 }} + > + Alle + {ZUSTAND_OPTIONS.map(([key, label]) => ( + {label} + ))} + + {canViewAll && ( + o.name} + value={memberOptions.find((m) => m.id === filterUser) ?? null} + onChange={(_e, v) => setFilterUser(v?.id ?? '')} + renderInput={(params) => } + sx={{ minWidth: 200 }} + /> + )} + + {filtered.length} {filtered.length === 1 ? 'Eintrag' : 'Einträge'} + + - {/* Table */} - - - - - Bezeichnung - Kategorie - {canViewAll && Benutzer} - Größe - Zustand - Anschaffung - - - - {isLoading ? ( - - - - Lade Daten… - - - - ) : filtered.length === 0 ? ( - - - - - - Keine Einträge gefunden - - - - - ) : ( - filtered.map((item) => ( - navigate(`/persoenliche-ausruestung/${item.id}`)}> - - - {item.bezeichnung} - - {item.artikel_bezeichnung && ( - - {item.artikel_bezeichnung} - - )} - {item.eigenschaften && item.eigenschaften.length > 0 && ( - - {item.eigenschaften.map((e) => ( - - ))} - - )} - - - {item.kategorie ?? '—'} - - {canViewAll && ( - - - {item.user_display_name ?? item.benutzer_name ?? '—'} + {/* Table */} + + + + + Bezeichnung + Kategorie + {canViewAll && Benutzer} + Größe + Zustand + Anschaffung + + + + {isLoading ? ( + + + + Lade Daten… - )} - - {item.groesse ?? '—'} - - - - - - - {item.anschaffung_datum - ? new Date(item.anschaffung_datum).toLocaleDateString('de-AT') - : '—'} - - - - )) - )} - - - + + ) : filtered.length === 0 ? ( + + + + + + Keine Einträge gefunden + + + + + ) : ( + filtered.map((item) => ( + navigate(`/persoenliche-ausruestung/${item.id}`)}> + + + {item.bezeichnung} + + {item.artikel_bezeichnung && ( + + {item.artikel_bezeichnung} + + )} + {item.eigenschaften && item.eigenschaften.length > 0 && ( + + {item.eigenschaften.map((e) => ( + + ))} + + )} + + + {item.kategorie ?? '—'} + + {canViewAll && ( + + + {item.user_display_name ?? item.benutzer_name ?? '—'} + + + )} + + {item.groesse ?? '—'} + + + + + + + {item.anschaffung_datum + ? new Date(item.anschaffung_datum).toLocaleDateString('de-AT') + : '—'} + + + + )) + )} + + + )}