Skip to content

feat(mail): Frei/Gebucht, geteilte Kalender und Ressourcen - #184

Merged
CallMeTechie merged 2 commits into
mainfrom
feat/mail-phase3
Nov 4, 2026
Merged

CallMeTechie merged 2 commits into
mainfrom
feat/mail-phase3

Conversation

@CallMeTechie

Copy link
Copy Markdown
Owner

Phase 3 des Mail-Plugins (Mail 1.9.0, Plugin-PR CallMeTechie/gatecontrol-plugins#146) in der Kalenderansicht der App. Alles hängt an den Flags aus GET me (freeBusy, calendarSharing, resources, bookingRequests) – ohne Flags ändert sich nichts. Nur Selbstbedienung; Ressourcen verwaltet weiter die Plugin-Seite im Server.

Je Mockup

  • Kalender (7): Fuß „Neuer Termin“ + „Ressource buchen“ (resources); im Kopf (Kalender-Chips) „Anfragen · n“ (bookingRequests, counts.open) bzw. „Meine Buchungen“. Geteilte Kalender als gerahmte Chips und in der Seitenleiste unter „Mit mir geteilt“ (Häkchen = sichtbar, „neu“ bis zum ersten Anzeigen, langer Druck: Besitzerin/Stufe, Farbe, Ausblenden). Einträge in ihrer Farbe; Frei/Gebucht-Einträge (eventId: null) zeigen beim Tippen nur „Gebucht · Zeit · Kalender · Frei/Gebucht“.
  • Ressource buchen (9): Chips Alle/Räume/Fahrzeuge/Geräte (/Sonstiges nur wenn vorhanden), Tag, Von–Bis, „Wofür?“, Karte je Ressource mit Symbol, Unterzeile (Standort · Personen · Ausstattung · Freigabe/automatisch · max.), Balken 8–18 (erweitert um die Auswahl) frei/gebucht/vorläufig/Auswahl, Skala; ausgewählte Karte mit „Ausgewählt: … · Titel“ und „Buchen“ bzw. „Anfrage an senden“ → POST resources/<id>/book; Toast „ gebucht“ / „Anfrage für gesendet“.
  • Neuer Termin (16): Ressourcen-Chips lila, „Ressource hinzufügen …“ (nur GateControl-Kalender, keine Serie, Zusatz „mit Freigabe“), Hinweis „Ressourcen werden gebucht, nicht eingeladen“. Abschnitt „Frei/Gebucht“: Datum + Fenster (Arbeitszeit, erweitert um die gewählte Zeit), Zeile je Teilnehmer/Ressource („Du“ zuerst, unbekannt grau), gewählte Zeit als Rahmen, Skala, Konfliktzeile („14:00 passt nicht für Tom (gebucht)“ / „Zu dieser Zeit können alle“ / „… unbekannt: …“), bis 4 Vorschläge zum Übernehmen (Dauer bleibt), Hinweis, Legende. Neu laden entprellt 250 ms; offline „Offline – geht wieder mit Verbindung“. Antwort mit bookings → Toast je Ressource. Bei Terminen geteilter Kalender gehen keine Teilnehmer mit (409 shared_attendees).
  • Kalender teilen (17): aus dem Menü eines eigenen GateControl-Kalenders („Teilen“): Suche über GET principals (Gruppen als „Gruppe “), Segment Frei/Gebucht | Lesen | Bearbeiten (Standard Lesen), „Geteilt mit“ mit Status/Personenzahl und Stufenauswahl inkl. „Nicht mehr teilen“, Schalter „Frei/Gebucht für alle in GateControl“ (auch in den Mail-Einstellungen), „Mit mir geteilt“ inkl. Konto-Kalender anderer Postfächer mit „Anzeigen“.
  • Buchungsanfragen (18): Chips „Offen · n“ / „Erledigt“ / „Meine Buchungen“ (ohne bookingRequests nur letztere), Karte mit Symbol, Buchende · Titel, Pill wartet/Konflikt/zugesagt/abgelehnt/abgesagt, Zeit, Tagesbalken bei offenen, Regel-/Konfliktzeile bzw. „, · trotz Regelverstoß freigegeben“ + Kommentar; Ablehnen/Freigeben, „Trotzdem freigeben“ (override), bei Konflikt kein Freigeben; already_decided → „ hat schon entschieden“ und neu laden; Meine Buchungen: „Absagen“ (mit Rückfrage) und „Termin öffnen“; Fußnote.

Weiteres

  • Fehlercodes mit eigenen Texten: resource_busy, rule_violation (Regeln in Klammern), already_decided, not_bookable, not_supported (je what), read_only, feature_off, invalid { reason: 'past' }.
  • Push: calendar_share → „Mit mir geteilt“, resource_request → Anfragen (Offen) an der Karte, resource_booking → Termin (sonst Meine Buchungen); eigene Kanalnamen (Geteilte Kalender, Buchungsanfragen, Buchungen).
  • Live: resources (Anfragen/Zähler, eigener Kalender, Liste), calendar { kind: 'shares' } (Kalenderliste, Teilen-Ansicht).
  • Frei/Gebucht, Vorschläge, Ressourcen und Anfragen werden nicht offline gespeichert; geteilte Einträge laufen über den bestehenden Kalender-Cache mit shared.
  • Eine Liste bekannter Mail-Features mit „neuere App-Version“-Hinweis (wie ChatFeatureHint) gibt es für Mail nicht; die neuen Flags lösen daher keinen Hinweis aus.
  • Tests: MailPlanTest (Lesen der Antworten, Bodies, Fenster/Balken/Konflikte, Pills/Aktionen, Push-Ziele, Live-Ereignisse).

Generated by Claude Code

Claude added 2 commits November 4, 2026 08:17
Mail 1.9.0 (Phase 3) in der Kalenderansicht, nur mit den Flags aus GET me
(freeBusy, calendarSharing, resources, bookingRequests):

- Neuer Termin: Abschnitt „Frei/Gebucht“ mit Balken je Person und
  Ressource, gewählter Zeit als Rahmen, Konflikthinweis und Vorschlägen
  zum Übernehmen; „Ressource hinzufügen …“ (lila Chips, gebucht statt
  eingeladen), Toast „<Name> gebucht“ / „Anfrage für <Name> gesendet“
- „Ressource buchen“ mit Art-Chips, Tag und Uhrzeit, Balken
  frei/gebucht/vorläufig/Auswahl, „Buchen“ bzw. „Anfrage an … senden“
- „Buchungsanfragen“: Offen · n / Erledigt / Meine Buchungen,
  Freigeben, Ablehnen, Trotzdem freigeben, Absagen; Einstieg im
  Kalenderkopf („Anfragen · n“ bzw. „Meine Buchungen“)
- „Kalender teilen“: Person/Gruppe suchen (GET principals), Stufe,
  „Geteilt mit“, „Frei/Gebucht für alle“ (auch in den Mail-Einstellungen),
  „Mit mir geteilt“ mit „Anzeigen“; geteilte Kalender in Chips und
  Seitenleiste, Frei/Gebucht-Einträge nur mit Zeitangabe
- Fehlercodes verständlich (resource_busy, rule_violation mit Regeln,
  already_decided, not_supported, read_only, feature_off …)
- Push-Themen calendar_share, resource_request, resource_booking mit
  eigenen Kanälen und Zielen; Live-Ereignisse resources und shares

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016xX1efcZF1f6G9rhmaJNLD
Bei Terminen aus einem mit mir geteilten Kalender (Stufe Bearbeiten)
gehören die Teilnehmer der Besitzerin: statt der Eingabe steht
„In geteilten Kalendern ohne Teilnehmer“, gesendet wird nichts davon.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016xX1efcZF1f6G9rhmaJNLD
@CallMeTechie
CallMeTechie merged commit 00f7acd into main Nov 4, 2026
9 checks passed
CallMeTechie pushed a commit that referenced this pull request Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants