3.4 KiB
Feature: Meetings (einmalige Termine)
Überblick
Neben den wiederkehrenden Jour-Fixes können einzelne, einmalige Meetings direkt im Daily Log erfasst und dokumentiert werden. Meetings sind an einen konkreten Tag gebunden und enthalten Uhrzeit, Teilnehmer und ein freies Markdown-Notizfeld.
Unterschied zu Jour-Fixes
| Jour-Fix | Meeting | |
|---|---|---|
| Wiederkehrend | Ja | Nein |
| Themen (Topics) | Ja, mit Historisierung | Nein |
| Notizen | HistoryEntry pro Thema & Datum | Ein Markdown-Feld, wird überschrieben |
| Teilnehmer | Nicht strukturiert | Explizites Feld |
| Uhrzeit | Nicht strukturiert | Pflichtfeld |
| Sichtbar in Sidebar | Ja (Favoriten) | Nein |
| Stammdaten | Ja (AgendaContext type='meeting') | Ja (AgendaContext type='event') |
Datenmodell
Meetings werden als AgendaContext mit type='event' gespeichert.
Metadaten liegen im meta-Feld als EventMeta:
interface EventMeta {
date: string; // YYYY-MM-DD
time: string; // HH:MM
participants: string[]; // Klarnamen, ohne @-Präfix
}
Die Notizen werden als ein einzelner HistoryEntry unter einem
__notes__-Topic ({contextId}-notes) gespeichert. Beim Speichern
wird der vorhandene Eintrag überschrieben — keine Versionierung.
Bedienung
Meeting anlegen
Variante 1 — Daily Log:
- Im Daily Log den gewünschten Tag auswählen
- Auf + Meeting (rechts über der Meetings-Sektion) klicken
- Titel, Uhrzeit und Teilnehmer eingeben
- Erstellen klicken
Variante 2 — CommandBar:
/meeting <Titel>eingeben → Meeting für heute wird angelegt
Die Uhrzeit wird beim Öffnen des Formulars mit der aktuellen Uhrzeit vorausgefüllt.
Teilnehmer eingeben
Das Teilnehmerfeld unterstützt @mention-Syntax:
@tippen → Dropdown mit Personen aus der Datenbank- Personen mit Leerzeichen im Namen werden automatisch gequotet:
@"Max Müller" - Mehrere Teilnehmer durch Leerzeichen trennen:
@Anna @"Max Müller" - Die Teilnehmer-Badges in der Ansicht sind klickbar → Absprung zur Person
Notizen erfassen
- Klick auf den Notizbereich öffnet den Markdown-Editor
@mention,@P:Projekt,@F:Firma-Verlinkungen funktionieren wie überall- Ctrl+S oder Speichern-Button zum Sichern
Meeting bearbeiten
Beim Hover über die Meeting-Karte erscheinen ✏️ und 🗑️:
- ✏️ öffnet das Bearbeitungsformular für Titel, Uhrzeit und Teilnehmer
- 🗑️ löscht das Meeting (Soft-Delete, wiederherstellbar über Papierkorb)
Technische Details
- Meetings erscheinen nur im Daily Log unter dem jeweiligen Datum
- Sie erscheinen nicht in der Sidebar und nicht in der Kontext-Navigation
- Der Sync läuft über den bestehenden
contexts-Kanal — keine zusätzlichen Sync-Endpunkte erforderlich - Soft-Delete cascadiert auf das Notes-Topic und den HistoryEntry
Relevante Dateien
| Datei | Zweck |
|---|---|
shared/src/types.ts |
EventMeta, ContextType = '...|event' |
client/src/lib/db/repositories.ts |
createEvent, updateEvent, updateEventNotes, getEventsForDate |
client/src/lib/stores/agenda.ts |
eventsForDate(date) liveQuery |
client/src/lib/components/EventCard.svelte |
Meeting-Karte (Anzeige + Bearbeitung) |
client/src/lib/components/JournalView.svelte |
Integration im Daily Log |
client/src/lib/components/CommandBar.svelte |
/meeting-Befehl |
server/src/db/schema.ts |
type Enum um 'event' erweitert |