From 757366e1cfedd1ca69c29b641a3fc8ac02fd923b Mon Sep 17 00:00:00 2001
From: Michael Bauer <michael-bauer@posteo.de>
Date: Tue, 15 Oct 2024 20:42:10 +0200
Subject: [PATCH] Add date-select

---
 .../frontend/components/Substitutions.vue      | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/aleksis/apps/chronos/frontend/components/Substitutions.vue b/aleksis/apps/chronos/frontend/components/Substitutions.vue
index 833a49bf..550f3876 100644
--- a/aleksis/apps/chronos/frontend/components/Substitutions.vue
+++ b/aleksis/apps/chronos/frontend/components/Substitutions.vue
@@ -1,6 +1,7 @@
 <script setup>
 import CRUDList from "aleksis.core/components/generic/CRUDList.vue";
 import PrimaryActionButton from "aleksis.core/components/generic/buttons/PrimaryActionButton.vue";
+import DateSelectFooter from "aleksis.core/components/generic/DateSelectFooter.vue";
 </script>
 
 <template>
@@ -129,6 +130,15 @@ import PrimaryActionButton from "aleksis.core/components/generic/buttons/Primary
       </v-chip>
       {{ notes }}
     </template>
+    <template #footer>
+      <!-- TODO: Skip over unneeded days; eg. weekends. -->
+      <date-select-footer
+        :value="date"
+        @input="gotoDate"
+        @prev="gotoDate(DateTime.fromISO(date).minus({ days: 1 }).toISODate())"
+        @next="gotoDate(DateTime.fromISO(date).plus({ days: 1 }).toISODate())"
+      />
+    </template>
   </c-r-u-d-list>
 </template>
 
@@ -186,6 +196,14 @@ export default {
     itemColor(item) {
       return item.cancelled ? "green-text" : "";
     },
+    gotoDate(date) {
+      this.$router.push({
+            name: "chronos.listSubstitutionsForDate",
+            params: {
+              date: date
+            },
+      });
+    },
   },
 };
 </script>
-- 
GitLab