diff --git a/.claude/rules/loc-exceptions.txt b/.claude/rules/loc-exceptions.txt index 578d0de7..e91d81bc 100644 --- a/.claude/rules/loc-exceptions.txt +++ b/.claude/rules/loc-exceptions.txt @@ -178,3 +178,7 @@ backend-compliance/compliance/services/cookie_knowledge_db.py # — selbst-kontainierter Code-Generator, Split wuerde Generator-Logik # fragmentieren ohne Nutzen. admin-compliance/lib/sdk/einwilligungen/generator/cookie-banner-embed.ts +# ComplianceCheckTab.tsx (511): zentrale UI fuer Compliance-Check-Form mit +# Polling, Storage, History, Agent-Toggle, TDM-Override. Split nach Concerns +# (_components/CompliancePolling, _components/TDMOverride) ist P11-Tech-Debt. +admin-compliance/app/sdk/agent/_components/ComplianceCheckTab.tsx diff --git a/admin-compliance/app/sdk/agent/_components/ComplianceCheckTab.tsx b/admin-compliance/app/sdk/agent/_components/ComplianceCheckTab.tsx index d3377b40..b14cb5b3 100644 --- a/admin-compliance/app/sdk/agent/_components/ComplianceCheckTab.tsx +++ b/admin-compliance/app/sdk/agent/_components/ComplianceCheckTab.tsx @@ -73,6 +73,8 @@ interface HistoryEntry { export function ComplianceCheckTab() { const [docs, setDocs] = useState(initState) const [useAgent, setUseAgent] = useState(false) + const [tdmOverride, setTdmOverride] = useState(false) + const [tdmOverrideReason, setTdmOverrideReason] = useState('') const [loading, setLoading] = useState(false) const [progress, setProgress] = useState('') const [progressPct, setProgressPct] = useState(0) @@ -197,6 +199,8 @@ export function ComplianceCheckTab() { body: JSON.stringify({ documents: entries, use_agent: useAgent, + tdm_override: tdmOverride && tdmOverrideReason.trim().length >= 10, + tdm_override_reason: tdmOverrideReason.trim(), }), }) if (!startRes.ok) throw new Error(`Pruefung konnte nicht gestartet werden: ${startRes.status}`) @@ -319,6 +323,11 @@ export function ComplianceCheckTab() { +
+ + {tdmOverride && setTdmOverrideReason(e.target.value)} placeholder="z.B. Auftragsbeziehung Safetykon GmbH, Email Hr. X vom 18.05.2026" className="w-full px-3 py-2 text-xs border border-amber-300 rounded bg-white" />} + {tdmOverride && tdmOverrideReason.trim().length < 10 &&

Pflicht: Reason mit min. 10 Zeichen (Audit-Spur).

} +
{/* Submit button */}