feat(web): show ICS subscription events in detail view

This commit is contained in:
2026-09-02 20:02:48 +02:00
parent e18c83b618
commit f34041d889
11 changed files with 908 additions and 80 deletions
+9 -2
View File
@@ -17,6 +17,7 @@ import (
"git.arnef.de/arnef/nidus/internal/carddav"
"git.arnef.de/arnef/nidus/internal/config"
"git.arnef.de/arnef/nidus/internal/db"
"git.arnef.de/arnef/nidus/internal/icssub"
"git.arnef.de/arnef/nidus/internal/store"
"git.arnef.de/arnef/nidus/internal/web"
filewebdav "git.arnef.de/arnef/nidus/internal/webdav"
@@ -103,10 +104,16 @@ func main() {
authMw := auth.NewMiddleware(cfg, dbase, logger)
// ---- Handlers ----
calHandler := caldav.NewHandler(cfg, st, dbase, logger)
// A single ICS-subscription cache is shared by both the CalDAV backend
// (for DAV clients) and the web UI (for the browser calendar page), so
// the same subscription is fetched and served identically regardless
// of which surface a client hits, and one background refresh refreshes
// both at once.
icsCache := icssub.NewCache(icssub.DefaultTTL)
calHandler := caldav.NewHandler(cfg, st, dbase, logger, icsCache)
cardHandler := carddav.NewHandler(cfg, st, dbase, logger)
fileHandler := filewebdav.NewHandler(cfg, cfg.Storage.DataDir, logger)
webUI := web.NewServer(cfg, st, dbase, logger)
webUI := web.NewServer(cfg, st, dbase, logger, icsCache)
mux := buildMux(cfg, authMw, calHandler, cardHandler, fileHandler, webUI, logger)