actionsleiste update
This commit is contained in:
@@ -28,6 +28,14 @@ const STATUS_LABEL = { offen: 'Offen', in_bearbeitung: 'In Bearbeitung', entsorg
|
||||
const PRIO_LABELS = { kritisch: 'Kritisch', hoch: 'Hoch', mittel: 'Mittel', niedrig: 'Niedrig' };
|
||||
const PRIO_OPTIONS = ['kritisch', 'hoch', 'mittel', 'niedrig'];
|
||||
const STATUS_OPTIONS = ['offen', 'in_bearbeitung', 'entsorgt'];
|
||||
const BEARB_STATUS_LABELS = {
|
||||
'': 'Nicht gesetzt',
|
||||
portalpruefung: '\u{1F50D} Portalprüfung durchführen',
|
||||
gutschreiben_entsorgen: '\u267B\uFE0F Direkt gutschreiben & entsorgen',
|
||||
zurueck_hersteller: '\u{1F4E6} Zurück an Hersteller senden',
|
||||
defekt_ankunft: '\u26A0\uFE0F Defekt bei Ankunft melden',
|
||||
};
|
||||
const BEARB_STATUS_OPTIONS = ['', 'portalpruefung', 'gutschreiben_entsorgen', 'zurueck_hersteller', 'defekt_ankunft'];
|
||||
|
||||
function formatTimestamp(ts) {
|
||||
if (!ts) return '–';
|
||||
@@ -97,6 +105,7 @@ export default function AssetDetail() {
|
||||
zustaendig: doc.zustaendig || '',
|
||||
status: doc.status || 'offen',
|
||||
prio: doc.prio || 'mittel',
|
||||
bearbeitungsStatus: doc.bearbeitungsStatus || '',
|
||||
kommentar: doc.kommentar || '',
|
||||
});
|
||||
} catch (err) {
|
||||
@@ -125,6 +134,7 @@ export default function AssetDetail() {
|
||||
{ key: 'zustaendig', label: 'Zuständig' },
|
||||
{ key: 'status', label: 'Status' },
|
||||
{ key: 'prio', label: 'Priorität' },
|
||||
{ key: 'bearbeitungsStatus', label: 'Bearbeitungsstatus' },
|
||||
{ key: 'kommentar', label: 'Kommentar' },
|
||||
];
|
||||
const changes = [];
|
||||
@@ -134,6 +144,8 @@ export default function AssetDetail() {
|
||||
if (oldVal !== newVal) {
|
||||
if (f.key === 'status') {
|
||||
changes.push(`${f.label}: ${STATUS_LABEL[oldVal] || oldVal} → ${STATUS_LABEL[newVal] || newVal}`);
|
||||
} else if (f.key === 'bearbeitungsStatus') {
|
||||
changes.push(`${f.label}: ${BEARB_STATUS_LABELS[oldVal] || oldVal || 'Nicht gesetzt'} → ${BEARB_STATUS_LABELS[newVal] || newVal || 'Nicht gesetzt'}`);
|
||||
} else if (f.key === 'prio') {
|
||||
changes.push(`${f.label}: ${PRIO_LABELS[oldVal] || oldVal} → ${PRIO_LABELS[newVal] || newVal}`);
|
||||
} else {
|
||||
@@ -201,6 +213,7 @@ export default function AssetDetail() {
|
||||
zustaendig: asset.zustaendig || '',
|
||||
status: asset.status || 'offen',
|
||||
prio: asset.prio || 'mittel',
|
||||
bearbeitungsStatus: asset.bearbeitungsStatus || '',
|
||||
kommentar: asset.kommentar || '',
|
||||
});
|
||||
}
|
||||
@@ -369,6 +382,26 @@ export default function AssetDetail() {
|
||||
)}
|
||||
</div>
|
||||
|
||||
{(form.status === 'in_bearbeitung' || asset.bearbeitungsStatus) && (
|
||||
<div className="space-y-1.5 sm:col-span-2">
|
||||
<Label>Bearbeitungsstatus</Label>
|
||||
{editing ? (
|
||||
<Select value={form.bearbeitungsStatus || '_none'} onValueChange={(v) => setForm(f => ({ ...f, bearbeitungsStatus: v === '_none' ? '' : v }))}>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{BEARB_STATUS_OPTIONS.map((s) => (
|
||||
<SelectItem key={s || '_none'} value={s || '_none'}>{BEARB_STATUS_LABELS[s]}</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
) : (
|
||||
<p className="text-sm">{BEARB_STATUS_LABELS[asset.bearbeitungsStatus || ''] || '–'}</p>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="space-y-1.5 sm:col-span-2">
|
||||
<Label>Kommentar</Label>
|
||||
{editing ? (
|
||||
|
||||
Reference in New Issue
Block a user