feat(ui): UI-007 Aktionsleiste auf der Objektakte
CI / backend-tests (push) Successful in 2m1s
CI / frontend-build (push) Successful in 18s

Kontrolle starten/Mangel melden direkt unter Status statt nur ein
Button am Seitenende - nach dem QR-Scan (MOBILE-002 landet auf der
Akte) sofort erreichbar. Mangel melden springt mit ?objekt_id=X in
MangelListePage und wählt das Objekt direkt vor.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
This commit is contained in:
2026-09-06 21:41:36 +02:00
co-authored by Claude Sonnet 5
parent fbc3b2223b
commit 30e2db63ae
3 changed files with 26 additions and 8 deletions
+11 -6
View File
@@ -57,6 +57,17 @@ export function AktePage() {
</ul>
)}
{/* UI-007 (Epic 20): nach dem QR-Scan (MOBILE-002) landet man hier - die
Kernaktionen sollen direkt sichtbar sein, nicht erst am Seitenende. */}
<div className="row" style={{ flexWrap: "wrap", marginTop: "1rem" }}>
<Link to={`/objekte/${objekt.id}/kontrolle`} className="btn btn-primary">
Kontrolle starten
</Link>
<Link to={`/maengel?objekt_id=${objekt.id}`} className="btn btn-secondary">
Mangel melden
</Link>
</div>
<div className="card" style={{ marginTop: "1rem" }}>
<h3 style={{ marginTop: 0 }}>Stammdaten</h3>
<div className="stack">
@@ -147,12 +158,6 @@ export function AktePage() {
</ul>
)}
</div>
<div style={{ marginTop: "1rem" }}>
<Link to={`/objekte/${objekt.id}/kontrolle`} className="btn btn-primary">
Kontrolle starten
</Link>
</div>
</main>
);
}
+8 -1
View File
@@ -1,4 +1,5 @@
import { useEffect, useState } from "react";
import { useSearchParams } from "react-router-dom";
import { apiRequest } from "../api/client";
import { useAuth } from "../auth/AuthContext";
@@ -34,7 +35,13 @@ export function MangelListePage() {
const [fehler, setFehler] = useState<string | null>(null);
const [nurOffene, setNurOffene] = useState(true);
const [objektId, setObjektId] = useState<number | "">("");
const [suchparameter] = useSearchParams();
// UI-007 (Epic 20): Quick Action "Mangel melden" aus der Objektakte springt
// hierher mit ?objekt_id=X und wählt das Objekt direkt vor.
const [objektId, setObjektId] = useState<number | "">(() => {
const wert = Number(suchparameter.get("objekt_id"));
return wert > 0 ? wert : "";
});
const [beschreibung, setBeschreibung] = useState("");
const [prioritaet, setPrioritaet] = useState<MangelPrioritaet>("normal");
const [wirdGemeldet, setWirdGemeldet] = useState(false);