From 35952d714bac0c3f6da102a6050b0f906feaa75e Mon Sep 17 00:00:00 2001
From: Hangzhi Yu <hangzhi@protonmail.com>
Date: Sat, 5 Aug 2023 22:42:06 +0200
Subject: [PATCH] Add polling to calendar

---
 .../core/frontend/components/calendar/Calendar.vue   | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/aleksis/core/frontend/components/calendar/Calendar.vue b/aleksis/core/frontend/components/calendar/Calendar.vue
index d2f5875c4..04d64e34c 100644
--- a/aleksis/core/frontend/components/calendar/Calendar.vue
+++ b/aleksis/core/frontend/components/calendar/Calendar.vue
@@ -243,8 +243,12 @@ export default {
 
         this.$apollo.queries.calendar.setVariables(this.queryVariables);
         this.$apollo.queries.calendar.skip = false;
+        this.$apollo.queries.calendar.startPolling(30000);
         this.fetchedDateRange = { start: extendedStart, end: extendedEnd };
       } else if (olderStart || youngerEnd) {
+        // Stop polling the query with old variables
+        this.$apollo.queries.calendar.stopPolling();
+
         // Define newly fetched date range
         let newStart = olderStart ? extendedStart : this.fetchedDateRange.start;
         let newEnd = youngerEnd ? extendedEnd : this.fetchedDateRange.end;
@@ -281,6 +285,14 @@ export default {
         });
 
         this.fetchedDateRange = { start: newStart, end: newEnd };
+
+        // Restart polling the query with newly set variables
+        this.$apollo.queries.calendar.setVariables(this.queryVariables);
+        this.$apollo.queries.calendar.startPolling(30000);
+        this.fetchedDateRange = {
+          start: this.queryVariables.start,
+          end: this.queryVariables.end
+        };
       }
     },
   },
-- 
GitLab