diff --git a/server/workspace-vorlagen.js b/server/workspace-vorlagen.js index ff8f075f..320e028a 100644 --- a/server/workspace-vorlagen.js +++ b/server/workspace-vorlagen.js @@ -1778,6 +1778,10 @@ vorlagenRouter.post("/workspace/api/vorlagen/uebernehmen", gleicheHerkunft, } const angelegt = []; + /* Was nicht angelegt wurde, WEIL es schon offen liegt. Getrennt + von "angelegt", damit die Oberflaeche beides sagen kann -- + eine Zahl allein liesse offen, ob etwas schiefging. */ + const uebersprungen = []; const einfuegen = (bereich, unterart, titel, text, zusatz = {}) => { db().prepare(`INSERT INTO eintraege (bereich, art, titel, text, datum, status, creator_id, hook, format, @@ -1931,10 +1935,50 @@ vorlagenRouter.post("/workspace/api/vorlagen/uebernehmen", gleicheHerkunft, if (!auswahl.length || auswahl.some((v) => !v)) { return res.status(400).json({ fehler: "Unbekannte Vorlage." }); } + /* ==== WAS SCHON OFFEN LIEGT, KOMMT NICHT NOCH EINMAL ======== + + AM 22.09.2026 UM 16:05 IST GENAU DAS PASSIERT: 56 Aufgaben + um 16:05:24, dieselben 56 um 16:05:53. Ein zweiter Druck auf + "Alle uebernehmen", 29 Sekunden spaeter -- und nichts hat + ihn aufgehalten. Vier Menschen fanden danach je 28 Aufgaben + vor, jede doppelt. Filipe hat sie nicht verteilt und wusste + nicht, woher sie kamen. + + NUR BEIM MASSENKNOPF, NICHT BEIM EINZELNEN. Ein "Nochmal" + an einer einzelnen Karte ist eine bewusste Entscheidung -- + manches macht man jede Woche neu, und der Knopf sagt es + sogar. Ein Griff, der zwoelf Aufgaben auf einmal holt, ist + etwas anderes: Ob er schon gedrueckt wurde, sieht man ihm + nicht an, und beim zweiten Mal richtet er zwoelffachen + Schaden an. + + "OFFEN" HEISST OFFEN. Was erledigt oder abgebrochen ist, + darf wiederkommen -- sonst koennte man eine Aufgabe, die + jede Woche ansteht, nach dem ersten Abhaken nie wieder + holen. Gefragt wird also nicht "gab es die schon mal", + sondern "liegt die gerade noch da". + + Dieselbe Sperre steht seit dem 10.09. im Termin-Zweig weiter + unten. Dass sie hier fehlte, ist nicht aufgefallen, weil + niemand zweimal drueckt -- bis es jemand tat. */ + const liegtSchon = art === "katalog_alle" + ? new Set(db().prepare( + `SELECT vorlage FROM aufgaben + WHERE verantwortlich_id = ? + AND vorlage IS NOT NULL + AND status NOT IN ('erledigt', 'abgebrochen')`) + .all(zielPerson.id).map((z) => z.vorlage)) + : new Set(); + const lagSchonDa = []; for (const v of auswahl) { + if (liegtSchon.has(v.schluessel)) { lagSchonDa.push(v.titel); continue; } katalogAufgabeAnlegen(v, zielPerson.id, req.person.id); angelegt.push(v.titel); } + /* DIE ZAHL GEHOERT IN DIE ANTWORT, nicht nur in die Datenbank. + Ein Knopf, der "12 uebernehmen" heisst und dann schweigend + drei anlegt, sieht aus wie ein Fehler. */ + if (lagSchonDa.length) uebersprungen.push(...lagSchonDa); } else if (art === "katalog_termin") { /* ============================================================= @@ -2014,8 +2058,10 @@ vorlagenRouter.post("/workspace/api/vorlagen/uebernehmen", gleicheHerkunft, } protokolliere("vorlage_uebernommen", req.person, echteIp(req), - `${art}: ${angelegt.length} Eintrag/Einträge`); - res.json({ angelegt: angelegt.length, titel: angelegt }); + `${art}: ${angelegt.length} Eintrag/Einträge` + + (uebersprungen.length ? `, ${uebersprungen.length} lagen schon da` : "")); + res.json({ angelegt: angelegt.length, titel: angelegt, + uebersprungen: uebersprungen.length }); } catch (fehler) { console.error("[workspace] Vorlage übernehmen:", fehler?.message); res.status(503).json({ fehler: "nicht_verfuegbar" }); diff --git a/workspace/anruf-probe.html b/workspace/anruf-probe.html index cb011bff..dbdec61e 100644 --- a/workspace/anruf-probe.html +++ b/workspace/anruf-probe.html @@ -16,15 +16,15 @@ verdeckt. Gefunden hat es pruef-struktur. Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. --> - - + + - +