Add web UI for CalDAV calendars (web/calendar)
- List of the user's own calendars (web/calendar) - Month view per calendar with a Monday-first 6-week grid, showing all-day and timed events, colored dot matching the calendar's color - Navigation between months (prev/next/today) via query params - Create/edit/delete events: title, description, location, all-day toggle, start/end date+time - Clicking a day cell prefills a new all-day event on that date; the "New event" button defaults to a one-hour slot starting next full hour - Deleting an event or invalid time ranges (end before/equal start) are validated with inline error messages - Verified round-trip with the real CalDAV protocol handler (events created via the web UI are correctly visible to a REPORT query) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
// Event form behavior: hide/show the start/end time fields depending on
|
||||
// whether the "All-day event" checkbox is checked.
|
||||
(function initEventForm(): void {
|
||||
const allDay = document.getElementById("all-day") as HTMLInputElement | null;
|
||||
const startTimeField = document.getElementById("start-time-field");
|
||||
const endTimeField = document.getElementById("end-time-field");
|
||||
|
||||
allDay?.addEventListener("change", () => {
|
||||
startTimeField?.classList.toggle("hidden", allDay.checked);
|
||||
endTimeField?.classList.toggle("hidden", allDay.checked);
|
||||
});
|
||||
})();
|
||||
Reference in New Issue
Block a user