Phase 5 Batch 5 Task 5.19: Report Generator Frontend-Oberfläche

- Created frontend/src/api/reports.ts: React Query hooks for templates, presets, generate
- Created frontend/src/pages/Reports.tsx: 3-column layout (template list, editor, generate)
- Preset quick-action buttons with format selection (PDF/Print/CSV/Excel)
- Template editor with Jinja2 code textarea, name, output format selector
- JSON data input for report parameters
- Download history tracking
- Route /reports registered in index.tsx (lazy-loaded)
- i18n keys added to de.json and en.json (reports section + nav.reports)
- 5 frontend tests: page render, template list, new template, select template, download history
- TSC: 0 new errors (2 pre-existing Dms.tsx errors only)
This commit is contained in:
Agent Zero
2026-07-23 23:26:40 +02:00
parent 15f1a57c0f
commit 0ec8502fd4
6 changed files with 783 additions and 2 deletions
+30 -1
View File
@@ -17,7 +17,8 @@
"auditLog": "Audit-Log",
"settings": "Einstellungen",
"aiAssistant": "KI Assistent",
"mcpSettings": "MCP Einstellungen"
"mcpSettings": "MCP Einstellungen",
"reports": "Reports"
},
"auth": {
"login": "Anmelden",
@@ -967,5 +968,33 @@
"tools": "Tools",
"noTools": "Keine Tools verfügbar"
}
},
"reports": {
"title": "Reports",
"presetReports": "Vorgefertigte Berichte",
"templates": "Vorlagen",
"newTemplate": "Neue Vorlage",
"editTemplate": "Vorlage bearbeiten",
"selectTemplate": "Vorlage auswählen",
"noTemplates": "Noch keine Vorlagen",
"templateName": "Vorlagenname",
"templateContent": "Jinja2 Vorlageninhalt (HTML für PDF)",
"templateCreated": "Vorlage erfolgreich erstellt",
"templateUpdated": "Vorlage erfolgreich aktualisiert",
"templateDeleted": "Vorlage gelöscht",
"confirmDelete": "Diese Vorlage löschen?",
"errorNameRequired": "Name ist erforderlich",
"errorContentRequired": "Vorlageninhalt ist erforderlich",
"saveFailed": "Speichern fehlgeschlagen",
"deleteFailed": "Löschen fehlgeschlagen",
"generate": "Generieren",
"generateReport": "Bericht generieren",
"generated": "Bericht erfolgreich generiert",
"generateFailed": "Berichtsgenerierung fehlgeschlagen",
"jsonData": "Daten (JSON)",
"invalidJson": "Ungültige JSON-Daten",
"selectTemplateHint": "Wählen Sie eine Vorlage aus der Liste",
"downloadHistory": "Download-Verlauf",
"noDownloads": "Noch keine Downloads"
}
}