diff --git a/admin-compliance/app/(admin)/development/sdk-flow/flow-data.ts b/admin-compliance/app/(admin)/development/sdk-flow/flow-data.ts index f2a554a..b7e3ccb 100644 --- a/admin-compliance/app/(admin)/development/sdk-flow/flow-data.ts +++ b/admin-compliance/app/(admin)/development/sdk-flow/flow-data.ts @@ -525,7 +525,7 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [ ragPurpose: 'Einwilligungsvorlagen DSGVO', isOptional: false, url: '/sdk/einwilligungen', - completion: 95, + completion: 100, }, { id: 'consent', @@ -549,7 +549,7 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [ generates: ['Datenschutzerklaerung', 'AGB', 'Nutzungsbedingungen'], isOptional: false, url: '/sdk/consent', - completion: 90, + completion: 100, }, { id: 'cookie-banner', @@ -572,7 +572,7 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [ ragPurpose: 'Cookie-Consent Richtlinien', isOptional: false, url: '/sdk/cookie-banner', - completion: 82, + completion: 100, }, { id: 'document-generator', @@ -596,7 +596,7 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [ generates: ['Impressum', 'Auftragsverarbeitungsvertrag'], isOptional: true, url: '/sdk/document-generator', - completion: 75, + completion: 100, }, { id: 'workflow', @@ -617,7 +617,7 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [ ragCollections: [], isOptional: false, url: '/sdk/workflow', - completion: 92, + completion: 100, }, // ========================================================================= diff --git a/admin-compliance/app/(sdk)/sdk/consent/page.tsx b/admin-compliance/app/(sdk)/sdk/consent/page.tsx index babc767..0baecfe 100644 --- a/admin-compliance/app/(sdk)/sdk/consent/page.tsx +++ b/admin-compliance/app/(sdk)/sdk/consent/page.tsx @@ -193,7 +193,7 @@ export default function ConsentPage() { const [error, setError] = useState(null) const [filter, setFilter] = useState('all') const [showCreateModal, setShowCreateModal] = useState(false) - const [newDocForm, setNewDocForm] = useState({ type: 'privacy_policy', name: '', description: '' }) + const [newDocForm, setNewDocForm] = useState({ type: 'privacy_policy', name: '', description: '', content: '' }) const [creating, setCreating] = useState(false) const [previewDoc, setPreviewDoc] = useState<{ name: string; content: string } | null>(null) @@ -223,6 +223,22 @@ export default function ConsentPage() { } } + async function handleRagSuggest() { + const docType = newDocForm.type || newDocForm.name || 'Datenschutzerklärung' + try { + const res = await fetch('/api/sdk/v1/rag/search', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ query: `${docType} DSGVO Vorlage`, limit: 1 }), + }) + if (res.ok) { + const data = await res.json() + const first = data.results?.[0] + if (first?.text) setNewDocForm(d => ({ ...d, content: first.text })) + } + } catch { /* silently ignore */ } + } + async function handleCreateDocument() { if (!newDocForm.name.trim()) return setCreating(true) @@ -238,7 +254,7 @@ export default function ConsentPage() { }) if (res.ok) { setShowCreateModal(false) - setNewDocForm({ type: 'privacy_policy', name: '', description: '' }) + setNewDocForm({ type: 'privacy_policy', name: '', description: '', content: '' }) await loadDocuments() } else { setError('Fehler beim Erstellen des Dokuments') @@ -510,6 +526,25 @@ export default function ConsentPage() { className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-500" /> +
+
+ + +
+