PhoenixKitProjects.Web.Widgets.CalendarWidget (PhoenixKitProjects v0.23.2)

Copy Markdown View Source

Dashboard widget: the Overview's calendar — every scheduled task across all projects on its days (Tasks mode, coloured by project, late marker), or one ongoing line per project (Projects mode) — as a widget, so a dashboards-module board can stand in for the Overview page.

Same data, same math: the per-project schedule walk (ScheduleLayout.tree/1) and the event builders in CalendarDisplay, rendered by the same PhoenixLiveCalendar.CalendarComponent, which pages months on its own (internal_date) and keeps that state across the host's refresh ticks because the widget re-renders it under a stable id.

What the page has and the widget deliberately does not: the assignee filter panel, the whole-day popup and click-to-open. A widget is a LiveComponent — the calendar's on_* callbacks message the parent LiveView, which here is the dashboards host, so none are wired. Settings cover the useful slices instead: "mode" (tasks | projects), "only_mine", "late_only". Views: month / agenda.