diff --git a/frontend/src/components/calendar/CalendarGrid.vue b/frontend/src/components/calendar/CalendarGrid.vue new file mode 100644 index 0000000..0aa93b1 --- /dev/null +++ b/frontend/src/components/calendar/CalendarGrid.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/frontend/src/components/calendar/CalendarItem.vue b/frontend/src/components/calendar/CalendarItem.vue new file mode 100644 index 0000000..2d0efe2 --- /dev/null +++ b/frontend/src/components/calendar/CalendarItem.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/frontend/src/components/calendar/OwnedItem.vue b/frontend/src/components/calendar/OwnedItem.vue new file mode 100644 index 0000000..cc79d3b --- /dev/null +++ b/frontend/src/components/calendar/OwnedItem.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/frontend/src/components/calendar/ScheduleItem.vue b/frontend/src/components/calendar/ScheduleItem.vue new file mode 100644 index 0000000..6563ebd --- /dev/null +++ b/frontend/src/components/calendar/ScheduleItem.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/frontend/src/components/calendar/ScheduleList.vue b/frontend/src/components/calendar/ScheduleList.vue new file mode 100644 index 0000000..e276fa3 --- /dev/null +++ b/frontend/src/components/calendar/ScheduleList.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/frontend/src/components/calendar/SharedItem.vue b/frontend/src/components/calendar/SharedItem.vue new file mode 100644 index 0000000..7724543 --- /dev/null +++ b/frontend/src/components/calendar/SharedItem.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/frontend/src/components/calendar/types.ts b/frontend/src/components/calendar/types.ts new file mode 100644 index 0000000..43af935 --- /dev/null +++ b/frontend/src/components/calendar/types.ts @@ -0,0 +1,25 @@ +/** A single expanded event occurrence placed into a calendar cell / schedule row. */ +export interface ScheduleEventItem { + uuid: string + belongTo: string + title: string + description: string + color: string + isVisible: boolean + isLocked: boolean + loopText: string + timezoneWarning: boolean + start: string + end: string +} + +/** One cell of the 6x7 month grid (also one day group in the schedule list). */ +export interface CalendarCell { + /** 1-based month. */ + month: number + day: number + /** 1-based day of week, Monday = 1 ... Sunday = 7. */ + dayOfWeek: number + isCurrentMonth: boolean + events: ScheduleEventItem[] +} diff --git a/frontend/src/views/Calendar.vue b/frontend/src/views/Calendar.vue index 9925716..04eed4a 100644 --- a/frontend/src/views/Calendar.vue +++ b/frontend/src/views/Calendar.vue @@ -1,26 +1,350 @@