WIP: Aufgaben- und Postfach-Routen (Test folgt auf dem Server)

This commit is contained in:
2026-08-22 22:56:59 +02:00
parent 548ec6bc00
commit 4ce51c127e
22 changed files with 1778 additions and 4 deletions
+37
View File
@@ -101,8 +101,26 @@ import {
kundeAnlegen, kundeEinladungNeu, kundenListe, kundeSchalten,
projektAnlegen, projektAendern, aenderungBeziffern, projektNachricht,
} from "./routes/webdesign-kunden.js";
/* Aufgabenliste je Projekt ("was ist schon gemacht von dem, was im Plan
war") und allgemeines Postfach fuer Nachrichten OHNE Projektbezug. */
import {
portalAufgaben, portalAufgabeErledigt, adminAufgaben, adminAufgabeAnlegen,
adminAufgabeAendern, adminAufgabeLoeschen, adminVorlageAnwenden,
} from "./routes/webdesign-aufgaben.js";
import {
portalPostfach, portalPostfachSenden, adminPostfachListe,
adminPostfachVerlauf, adminPostfachSenden, adminPostfachZaehler,
} from "./routes/webdesign-postfach.js";
import { vorlagenSicherstellen } from "./lib/webdesign-vorlagen.js";
initDb();
/* Muss NACH initDb laufen -- die Tabelle entsteht erst dort. Schreibt
die Standard-Aufgabenlisten beim allerersten Start in die Datenbank
und tut danach nichts mehr. Vorhandene Vorlagen werden nie
ueberschrieben, sonst waeren von Hand angepasste nach dem naechsten
Neustart weg -- und niemand kaeme auf die Idee, dass der Neustart
daran schuld war. */
vorlagenSicherstellen();
const PORT = Number(process.env.PORT || 4200);
const app = express();
@@ -266,6 +284,25 @@ app.post("/webdesign/admin/projekte/:id", wrap(projektAendern));
app.post("/webdesign/admin/aenderungen/:id/beziffern", wrap(aenderungBeziffern));
app.post("/webdesign/admin/projekt-nachricht", wrap(projektNachricht));
/* ---------- Aufgabenliste je Projekt ----------
Kundenseite links, Verwaltung rechts. Der Kunde darf nur Punkte
abhaken, die IHM zugewiesen sind -- geprueft im Handler, nicht hier. */
app.get("/webdesign/portal/projekt/:id/aufgaben", wrap(portalAufgaben));
app.post("/webdesign/portal/aufgabe/:id/erledigt", wrap(portalAufgabeErledigt));
app.get("/webdesign/admin/projekte/:id/aufgaben", wrap(adminAufgaben));
app.post("/webdesign/admin/projekte/:id/aufgaben", wrap(adminAufgabeAnlegen));
app.post("/webdesign/admin/projekte/:id/aufgaben/vorlage", wrap(adminVorlageAnwenden));
app.post("/webdesign/admin/aufgaben/:id", wrap(adminAufgabeAendern));
app.post("/webdesign/admin/aufgaben/:id/loeschen", wrap(adminAufgabeLoeschen));
/* ---------- Postfach (Nachrichten ohne Projektbezug) ---------- */
app.get("/webdesign/portal/postfach", wrap(portalPostfach));
app.post("/webdesign/portal/postfach", wrap(portalPostfachSenden));
app.get("/webdesign/admin/postfach", wrap(adminPostfachListe));
app.get("/webdesign/admin/postfach-zaehler", wrap(adminPostfachZaehler));
app.get("/webdesign/admin/postfach/:kundeId", wrap(adminPostfachVerlauf));
app.post("/webdesign/admin/postfach/:kundeId", wrap(adminPostfachSenden));
app.post("/supporter/register", wrap(registerSupporter));
app.post("/supporter/verify-email", wrap(verifySupporterEmail));
// Normaler Login seit 21.08.2026: E-Mail + selbst gewählter Zugangscode.