- 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>
13 lines
550 B
TypeScript
13 lines
550 B
TypeScript
// 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);
|
|
});
|
|
})();
|