From 7deed0399f815bb2ef016b85f6cca8a2979c68d5 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Tue, 19 Sep 2023 11:32:33 +0200
Subject: [PATCH] Fix first time mode and make it configurable

---
 .../core/frontend/components/calendar/Calendar.vue | 14 +++++++++++---
 .../components/calendar/CalendarWithControls.vue   |  6 ++++++
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/aleksis/core/frontend/components/calendar/Calendar.vue b/aleksis/core/frontend/components/calendar/Calendar.vue
index 3eacb598c..3a62a89ce 100644
--- a/aleksis/core/frontend/components/calendar/Calendar.vue
+++ b/aleksis/core/frontend/components/calendar/Calendar.vue
@@ -15,7 +15,7 @@
         :events="events"
         :type="internalCalendarType"
         :event_color="getColorForEvent"
-        :first-time="firstTime"
+        :first-time="startWithFirstTime ? firstTime : undefined"
         interval-height="60"
         @click:date="viewDay"
         @click:day="viewDay"
@@ -69,6 +69,12 @@ export default {
       required: false,
       default: null,
     },
+    // Start the calendar with the time of the first starting calendar event
+    startWithFirstTime: {
+      type: Object,
+      required: false,
+      default: () => false,
+    },
   },
   data() {
     return {
@@ -106,8 +112,10 @@ export default {
   computed: {
     rangeDateTime() {
       return {
-        start: this.range.start ? this.$parseISODate(this.range.start) : null,
-        end: this.range.end ? this.$parseISODate(this.range.end) : null,
+        start: this.range.start
+          ? this.$parseISODate(this.range.start.date)
+          : null,
+        end: this.range.end ? this.$parseISODate(this.range.end.date) : null,
       };
     },
     events() {
diff --git a/aleksis/core/frontend/components/calendar/CalendarWithControls.vue b/aleksis/core/frontend/components/calendar/CalendarWithControls.vue
index 68d631591..4ace267ae 100644
--- a/aleksis/core/frontend/components/calendar/CalendarWithControls.vue
+++ b/aleksis/core/frontend/components/calendar/CalendarWithControls.vue
@@ -30,6 +30,7 @@
       @changeCalendarType="setCalendarType"
       v-bind="$attrs"
       ref="calendar"
+      :startWithFirstTime="startWithFirstTime"
     />
   </div>
 </template>
@@ -52,6 +53,11 @@ export default {
       type: Array,
       required: true,
     },
+    startWithFirstTime: {
+      type: Object,
+      required: false,
+      default: () => true,
+    },
   },
 };
 </script>
-- 
GitLab