b867554e23
Google Kalender: individuelle Kalender in Sidebar anzeigen wie bei CalDAV - GoogleCalendar-Modell hinzugefügt (pro Account, mit enabled/color/name) - Kalender werden nach OAuth automatisch synchronisiert - Sidebar zeigt individuelle Google-Kalender mit Checkbox, Farbpunkt und Ausblenden-Button - Einstellungen: Google-Konten-Bereich mit Sync- und Trennen-Button - Ausgeblendete Kalender-Liste zeigt auch Google-Kalender - Event-Erstellung/Bearbeitung/Löschung nutzt GoogleCalendar-ID statt Account-ID
Scarriffle2026-03-27 09:45:10 +01:00
21d8ddfb7c
Fix Google OAuth: email scope hinzufügen für korrekte Email-Anzeige
Scarriffle2026-03-27 09:30:36 +01:00
0ffb6e5c49
Google Calendar OAuth2 Integration + CalDAV-Kalender ausblenden statt löschen - Google OAuth2 Flow: Admin konfiguriert Client-ID/Secret, User verbindet per Klick - Google Calendar API v3: Events lesen, erstellen, bearbeiten, löschen - GoogleAccount Model + google_router mit Token-Refresh - Google-Events in Event-Pipeline integriert - Frontend: Google Kalender in Sidebar, Dropdown, Event-CRUD-Routing - CalDAV-Kalender: Ausblenden statt ganzes Konto löschen, Einblenden in Einstellungen - Ausgeblendete Kalender Sektion in Einstellungen
Scarriffle2026-03-27 08:44:51 +01:00
cd46b45ec6
Lokale Kalender und iCal-URL-Abonnements Neue Features: - Lokale Kalender erstellen mit vollem Event-CRUD (in SQLite gespeichert) - iCal-URLs abonnieren mit Auto-Refresh und lokalem Caching - iCal-Events sind editierbar/löschbar (Änderungen als lokale Overrides) - Sidebar zeigt alle 3 Kalendertypen mit Farbe, Umbenennen, Löschen - Dropdown "Kalender hinzufügen" mit 3 Optionen (Lokal, CalDAV, iCal) Backend: models.py (4 neue Tabellen), local_router.py, ical_router.py Frontend: Neue Modals, erweiterte Sidebar, Source-basiertes Event-Routing
Scarriffle2026-03-27 07:39:41 +01:00
b2bc107d47
Einstellungen: native Color-Inputs durch Gradient-Colorpicker ersetzen Primärfarbe, Akzentfarbe, Heutige-Tag-Farbe und Account-Farbe verwenden jetzt den gleichen Dark-Style Gradient-Picker.
Scarriffle2026-03-26 19:41:17 +01:00
c0cbb22633
Gradient-Colorpicker im Dark-Style für Event- und Kalenderfarben Feste Farb-Swatches durch den HSV-Gradient-Colorpicker ersetzt. Neues Dark-Theme-CSS für den Picker passend zum Rest der App.
Scarriffle2026-03-26 19:35:08 +01:00
a1001bad68
Fix Avatar-Anzeige: Auth-Header bei Avatar-Requests mitsenden Avatar-Bilder wurden per <img src="..."> geladen, was keinen Authorization-Header mitsendet. Der Endpoint erfordert aber Auth, daher kam immer 401 zurück. Jetzt werden alle Avatar-Requests per fetch() mit Bearer-Token geladen und als Blob-URL gesetzt.
Scarriffle2026-03-26 19:23:58 +01:00
1bbabd6c4d
UI-Verbesserungen: Favicon, Tab-Titel, Kalender umbenennen, Avatar-Crop, Farbpalette - SVG-Favicon hinzugefügt - Dynamischer Tab-Titel (z.B. "Calendarr - März 2026") - Kalender per Doppelklick umbenennen (Backend + Frontend) - Avatar-Anzeige im Topbar gefixt (onerror Fallback, robustes Laden) - Avatar-Upload mit Cropper.js Bildausschnitt-Wahl - Avatar-Limit auf 5 MB erhöht, Thumbnail auf 512px - Farbpalette statt nativem Color-Picker für Kalenderfarben
Scarriffle2026-03-26 15:14:34 +01:00
77d6e20f86
Fix Avatar-Dropdown: Klick auf Child-Elemente korrekt erkennen avatar.contains() statt e.target !== avatar, damit Klicks auf das img innerhalb des Avatar-Divs das Dropdown nicht sofort schließen.
Scarriffle2026-03-26 14:18:24 +01:00
128f1b468a
Profilseite mit Avatar, Passwort-Änderung und TOTP 2FA - Neues Profil-Modal: Avatar-Upload, E-Mail bearbeiten, Kalender-Übersicht - Passwort ändern mit Validierung des aktuellen Passworts - TOTP 2FA: QR-Code + manueller Schlüssel, Aktivierung/Deaktivierung - Login-Flow unterstützt 2FA-Code (neuer JSON-Endpoint /auth/login) - User-Dropdown mit Profil-Link statt confirm()-Dialog - Kalenderfarben in Sidebar editierbar (Color-Picker auf Farbpunkt) - Monatsansicht nutzt volle Höhe (#view-container flex fix) - requirements.txt: passlib durch bcrypt ersetzt, pyotp/qrcode/Pillow hinzugefügt
Scarriffle2026-03-26 14:10:53 +01:00
8e200e9d11
Fix dayKey Tippfehler in renderMiniCal der die gesamte App crashte dayKey war nicht definiert in calendar.js - korrekt ist dateKey (aus utils.js importiert). Der ReferenceError verhinderte die Registrierung aller Event-Handler.
Scarriffle2026-03-26 13:51:23 +01:00