From 04185c1c114c4abf35baa4ed0b385c8af0f659b5 Mon Sep 17 00:00:00 2001 From: bytedream Date: Sat, 3 Jan 2026 19:46:55 +0100 Subject: [PATCH] add report draft editing warn popup --- src/actions/report.ts | 3 ++- src/app/admin/reports/BottomBar.svelte | 8 +++++++- src/db/schema/report.ts | 6 ++++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/actions/report.ts b/src/actions/report.ts index 5fb3dbc..a33c21a 100644 --- a/src/actions/report.ts +++ b/src/actions/report.ts @@ -197,12 +197,13 @@ export const report = { if (input.status === 'closed') preReportStrike = await db.getStrikeByReportId({ reportId: input.reportId }); await db.transaction(async (tx) => { + if (reportCreatedAt) await tx.editReport({ id: input.reportId, createdAt: reportCreatedAt }); + await tx.editReportStatus(input); if (input.strikeReasonId) { await db.editStrike({ reportId: input.reportId, - at: reportCreatedAt, strikeReasonId: input.strikeReasonId }); } else { diff --git a/src/app/admin/reports/BottomBar.svelte b/src/app/admin/reports/BottomBar.svelte index 75e0266..2096c6e 100644 --- a/src/app/admin/reports/BottomBar.svelte +++ b/src/app/admin/reports/BottomBar.svelte @@ -59,9 +59,15 @@ // callbacks async function onSaveButtonClick() { + let popupMessage; + if (report!.createdAt) popupMessage = 'Sollen die Änderungen am Report gespeichert werden?'; + else + popupMessage = `Der Report ist aktuell noch ein Entwurf. Mit den Änderungen wird der Report kein Entwurf mehr sein, und der Ersteller kann ihn nicht mehr bearbeiten.\n + Sollen die Änderungen am Report trotzdem gespeichert werden?`; + $confirmPopupState = { title: 'Änderungen speichern?', - message: 'Sollen die Änderungen am Report gespeichert werden?', + message: popupMessage, onConfirm: async () => { if (reportedUser?.id != report?.reported?.id) { report!.reported = reportedUser; diff --git a/src/db/schema/report.ts b/src/db/schema/report.ts index 7f44d60..a271d67 100644 --- a/src/db/schema/report.ts +++ b/src/db/schema/report.ts @@ -30,7 +30,8 @@ export type AddReportReq = { export type EditReportReq = { id: number; - reportedId: number | null; + reportedId?: number | null; + createdAt?: Date | null; }; export type SubmitReportReq = { @@ -76,7 +77,8 @@ export async function editReport(db: Database, values: EditReportReq) { return db .update(report) .set({ - reportedId: values.reportedId + reportedId: values.reportedId, + createdAt: values.createdAt ?? undefined }) .where(eq(report.id, values.id)); }