Notizen je Projekt statt Reiter Leistungsphasen

- Neuer Reiter „Notizen“ im Projektbereich: Liste mit Suche und
  angehefteten Notizen, Editor mit Formatierung, automatisches Speichern,
  Mail per Drag & Drop oder Strg+V als neue Notiz, live bei allen
- Reiter „Leistungsphasen“ entfernt (Phasen weiter im Terminplan)
- Behoben: Umlaute in .eml-Dateien ohne Transfer-Kodierung gingen
  verloren (betraf auch „Termin aus Mail“)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
erikandClaude Opus 5.5 committed 2026-10-30 10:00:20 +01:00
1 parent 51dfbe8cd8
commit 7d65ff813f
10 files changed
+697 -265

No files matched your search

+31
View File
@@ -1552,6 +1552,37 @@ step into a project explicit. Everything lives in `public/js/auftrag.js`:
`plan-modals.js`) über dem bisherigen Feld `#milestoneEditPosition`,
das allein gespeichert wird. Alle Feld-ids und Schreibwege unverändert.
Stile: Block „Seitenpanel“ am Ende von `plan-styles.css`.
- **Notizen** (Reiter zwischen Terminplan und Aufgaben, Eriks Wahl „A –
Liste + Editor“ aus drei Entwürfen, `js/plan/plan-notizen.js`):
gemeinsame Notizen je Projekt. Links Liste (angeheftete oben, sonst
zuletzt geändert zuerst, Suche über Titel und Text), rechts Editor mit
Titel, Werkzeugleiste des Sitzungskommentars (`richtextToolbarHtml()`)
und Text; **automatisches Speichern** 1,2 s nach der letzten Änderung und
beim Verlassen des Feldes (MutationObserver, weil die Werkzeugleiste kein
input-Ereignis auslöst), Anzeige „Gespeichert ✓“. Anheften, Löschen
zweistufig im Knopf. **Mail** (Text oder `.eml`) per Drag & Drop auf den
Bereich oder Strg+V außerhalb der Felder → neue Notiz OHNE KI (Titel =
Betreff, Von/Datum oben, Zitate abgeschnitten).
Server: Tabelle `projekt_notizen` (an `project_uid`, nicht an der
Sitzung; in `IMPORT_TABLES` + `IMPORT_OPTIONAL_TABLES`), Routen `GET
/projekt-notizen?uid=`, `POST /projekt-notizen`, `PUT
/projekt-notizen/:id` (mit `basis` → 409 bei fremder Änderung; Client
bietet „Meine Fassung speichern“/„Neuen Stand laden“), `DELETE` (nur
Verfasser oder Administrator), `POST /projekt-notizen/aus-mail`. Lesen:
Grundzugang; Schreiben: `proj.plan`. Live-Ereignis `{typ:'notizen',
uid}` → `notizenLiveAenderung()`. Stile: Block „Notizen“ am Ende von
`plan-styles.css`.
**Gefunden dabei:** `leseEml()` zerstörte Umlaute in `.eml`-Dateien ohne
Transfer-Kodierung (7bit/8bit, der Normalfall) — der Text kam schon als
UTF-8-Zeichenkette vom Browser und wurde fälschlich als latin1-Bytes neu
dekodiert. Betraf auch „Termin aus Mail“; behoben.
- **Reiter „Leistungsphasen“ entfernt** (Eriks Wunsch, 30.10.2026): Nav-Knopf,
Abschnitt `#planSection-phasen`, `renderPlanPhasen()` und der CSS-Block
sind weg; ein alter Link auf `#phasen` landet auf dem Dashboard.
`js/plan/plan-phasen.js` enthält nur noch `aufgabenPhase()` (genutzt von
der Aufgabenliste und dem Terminplan-PDF). „+ Leistungsphase“ und
„Terminplan aus Honorar“ bleiben im Terminplan unter „+ Neu“. Der
folgende Absatz beschreibt den entfernten Stand.
- **Leistungsphasen** (eigener Reiter zwischen Terminplan und Aufgaben,
Eriks Wahl „B“, `js/plan/plan-phasen.js`): oben ein Ablaufbalken aller
Phasen mit Zeitraum (Heute-Linie, Klick hebt die Kachel hervor), darunter