Commit Graph

24 Commits

Author SHA1 Message Date
804d6ac9eb Fix: Scroll auf week-view verlegen – Header und Zeitraster immer gleich breit 2026-04-08 15:19:16 +02:00
6a25607103 Fix: overflow-y:scroll statt auto für konsistente Spaltenbreite 2026-04-08 15:13:00 +02:00
f50f5fa1e1 Fix: Spaltenbreite Zeitraster und Kopfzeile durch scrollbar-gutter angleichen 2026-04-08 15:11:13 +02:00
8fc3472b1c Fix: Ganztägig-Zeile sticky + korrekte Ausrichtung in Wochen-/Tagesansicht 2026-04-08 15:08:45 +02:00
fce162693c Feature: Dynamische Monatsansicht-Lanes + spanning All-Day-Balken in Wochenansicht
month.js: MAX_LANES wird jetzt aus der tatsächlichen Container-Höhe berechnet (kein hartes Limit von 3 mehr).
week.js: All-Day-Zeile verwendet jetzt dieselbe Overlay-Logik wie die Monatsansicht – Termine spannen als einzelner Balken über mehrere Tage.
2026-04-08 14:57:57 +02:00
e317b799d0 Feature: Mehrtägige Termine in Wochen-/Tagesansicht vollständig anzeigen
Timed-Events die mehrere Tage überspannen werden neu in der Ganztags-Zeile für jeden betroffenen Tag als Bar angezeigt (am Starttag mit Uhrzeit). Die Tagesspalten erhalten einen 15%-Farbhintergrund (col-span-tint) um die Abdeckung zu visualisieren.
2026-04-08 14:47:11 +02:00
cae39e6086 Feature: Enddatum im Popup + Kopieren-nach-Kalender-Button
Enddatum wird im Event-Popup angezeigt wenn Termin über Mitternacht geht. Neuer Kopieren-Button (📋) im Popup öffnet Kalender-Auswahl und dupliziert den Termin in den gewählten Kalender (CalDAV / Lokal / Google).
2026-04-08 14:34:01 +02:00
bda4a75a11 Fix: Quartalsansicht – zufällige Today-Markierungen behoben, Button nach links verschoben
Selected-Klasse aus der Quartalsansicht entfernt (war visuell identisch mit Today). Button-Reihenfolge: Quartal > Monat > Woche > Tag > Termine.
2026-04-08 14:15:48 +02:00
ba73bde353 Feature: Quartalsansicht hinzugefügt
Neue Ansicht zeigt 3 Monate eines Quartals nebeneinander mit farbigen Event-Dots, Quartal-Navigation und Titelanzeige (z.B. Q2 2026). Klick auf Tag wechselt in Tagesansicht. Zweisprachig (DE/EN).
2026-04-08 14:11:00 +02:00
Scarriffle
7f92e0423c fix: Month grid lines, scroll throttle, custom dark date/time picker
- Month view: Replaced day-strip+events-area with full-height column
  divs (.month-col) so borders extend the full row height and clicking
  anywhere in a day column (including below events) navigates to day view.
  Events overlay uses pointer-events:none (pass-through) while span bars
  and +N-more labels stay pointer-events:all.
- Scroll navigation: Changed wheel handler from 80ms debounce to 500ms
  leading-edge throttle — one navigation per trackpad gesture.
- Custom date/time picker (date-picker.js): Dark calendar grid with
  prev/next navigation, today/selected highlighting, and a CSS
  scroll-snap time scroller (hours 0-23, minutes 0-59) matching the
  app's primary color. Language-aware (month names, day headers via t()).
- Event modal datetime inputs replaced with hidden inputs + .dt-display
  click targets that open the custom picker. setDtValue() helper keeps
  hidden input and display label in sync.
2026-04-07 21:44:44 +02:00
Scarriffle
cd4879d573 feat: Spanning event bars, wheel nav, dark datetime picker, segmented settings UI
- Month view: Multi-day events render as continuous Google Calendar-style
  spanning bars across days/weeks using a greedy lane-packing algorithm.
  Timed multi-day events no longer repeat per day.
- Mouse wheel / trackpad scrolls week-by-week in month view, day/week in
  other views (debounced, prevents default page scroll).
- datetime-local/date inputs now use color-scheme:dark so the native
  browser picker opens in dark mode; calendar icon styled to match.
- Contrast/hour-height selectors redesigned as connected segmented pill
  controls instead of individual tiles.
- Hidden calendars list gains proper padding and separator lines.
- "Google Konten" settings panel renamed "Konten" and expanded to show
  CalDAV, local calendars, iCal subscriptions, and Google accounts in
  one unified panel with sync/disconnect actions.
- New i18n keys added for accounts panel in both de and en.
2026-04-07 21:20:42 +02:00
e4a14e6927 Icon: SVG-Favicon + Emoji in Setup/Login ersetzt, Settings-Tab "Darstellung" umbenannt 2026-03-27 14:54:26 +01:00
4f3db6142d Fix: Login case-insensitive, Settings zusammengeführt, SVG-Icon, Copyright einzeilig
- Login: Benutzername wird case-insensitiv verglichen (func.lower auf beiden Seiten)
- Benutzer anlegen: Username wird immer lowercase gespeichert
- Einstellungen: Panels "Darstellung", "Ansicht & Raster" und "Ausgeblendete Kalender" zu einem einzigen Panel zusammengeführt
- App-Icon: Emoji 📅 durch plattformunabhängiges Inline-SVG ersetzt
- Copyright: white-space:nowrap +   damit Zeile nie umbricht
2026-03-27 14:50:16 +01:00
c849f77651 Einstellungen: Vollbild-Seite, Kontrast, Stundenhöhe, KW-Anzeige
- Einstellungen von Modal-Popup auf Vollbild-Seite mit Seitennavigation umgestellt
- Schriftkontrast (4 Stufen) und Linienkontrast (4 Stufen) pro Benutzer gespeichert
- Stundenhöhe (40/60/80/100px) in Wochen-/Tagesansicht per Einstellung steuerbar
- Kalenderwoche in Monats- und Wochenansicht grösser dargestellt
- CSS-Variable --hour-h für dynamische Zeitraster-Höhe in week.js und app.css
- Backend: neue Felder text_contrast, line_contrast, hour_height in UserSettings
2026-03-27 10:43:39 +01:00
2128f07037 Login: Untertitel "das minimalistische Kalender Frontend" hinzufügen 2026-03-27 10:16:10 +01:00
fa0a96994e Impressum-Popup: Copyright in Sidebar und Login-Seite hinzufügen
- © 2026 Scarriffleservices am unteren Rand der Sidebar (sticky)
- Gleicher Link auf der Login-Seite (unten mittig)
- Impressum-Modal: Anbieter, Datenspeicherung Schweiz, Haftungsausschluss, Kontakt
2026-03-27 10:06:31 +01:00
bad1ed500f Kalender-Sichtbarkeit persistent speichern + Sidebar-Overflow-Fix
- sidebar_hidden-Spalte zu calendars und google_calendars hinzugefügt
- Ausblenden-Button persistiert jetzt server-seitig (cross-device)
- Einblenden in Einstellungen schreibt sidebar_hidden=false zurück
- Sidebar: overflow-x hidden verhindert dass lange Namen den Button rausschieben
2026-03-27 10:02:05 +01:00
f9f5d8c4cb Fix: langer Kalendername überdeckt Ausblenden-Button in Sidebar 2026-03-27 09:51:18 +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
2026-03-27 07:39:41 +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.
2026-03-26 19:35:08 +01:00
3f3609c944 big update i guess 2026-03-26 18:55:15 +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
2026-03-26 15:14:34 +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
2026-03-26 14:10:53 +01:00
f029ed1544 initialer commit, Grundcode 2026-03-26 11:20:48 +01:00