feat(PROJ-2): EML/MBOX-Upload für alle Benutzer zugänglich

- Backend: neue Routen POST /api/upload + GET /api/upload/{jobID}/progress (nur Auth, kein Admin)
- api.ts: uploadMailFilesUser + getUploadProgressUser für /api/upload
- search/page.tsx: Importieren-Button + Upload-Dialog mit Drag-and-Drop, Fortschrittsanzeige und automatischer Suchlisten-Aktualisierung nach Import

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
sysops
2026-03-17 10:12:09 +01:00
parent 1e677659b9
commit b95c49daa5
3 changed files with 168 additions and 2 deletions
+19
View File
@@ -484,3 +484,22 @@ export async function uploadMailFiles(files: File[]): Promise<{ job_id: string }
export async function getUploadProgress(jobID: string): Promise<UploadJob> {
return request<UploadJob>(`/api/admin/upload/${jobID}/progress`);
}
export async function uploadMailFilesUser(files: File[]): Promise<{ job_id: string }> {
const form = new FormData();
for (const f of files) form.append("files", f);
const res = await fetch(`${API_BASE}/api/upload`, {
method: "POST",
credentials: "include",
body: form,
});
if (!res.ok) {
const body = await res.text();
throw new Error(body || `Upload failed: ${res.status}`);
}
return res.json();
}
export async function getUploadProgressUser(jobID: string): Promise<UploadJob> {
return request<UploadJob>(`/api/upload/${jobID}/progress`);
}