From 9025fd82b41b4e3552c4bbe4d5a189dc0457c126 Mon Sep 17 00:00:00 2001 From: Michael Bauer <michael-bauer@posteo.de> Date: Thu, 21 Mar 2024 17:31:56 +0100 Subject: [PATCH] Begin assuring current date range - create date range --- .../components/coursebook/Coursebook.vue | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue index be2d1530f..bd12b7628 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue @@ -67,7 +67,7 @@ import CRUDIterator from "aleksis.core/components/generic/CRUDIterator.vue"; import DateSelectFooter from "aleksis.core/components/generic/DateSelectFooter.vue"; import DocumentationModal from "./documentation/DocumentationModal.vue"; -import { DateTime } from "luxon"; +import { DateTime, Interval } from "luxon"; import { documentationsForCoursebook } from "./coursebook.graphql"; import CoursebookFilters from "./CoursebookFilters.vue"; import CoursebookLoader from "./CoursebookLoader.vue"; @@ -270,11 +270,27 @@ export default { return "documentation_" + nearestId.toISODate(); }, + // TODO: Improve Add empty but already queried days to docsByDay -> do not query them again + // docsByDay: {dt: [dt doc ...] ...} + assureDate(date) { + // find missing & fetch missing range + // date +- 5 days ? + const dateRange = Interval + .fromDateTimes(date.minus({ days: 3 }), date.plus({ days: 4 })) + .splitBy({ days: 1 }) + .map((ts) => ts.start); + console.log('assureDate', dateRange.map((ts) => ts.toISODate())); + // look up in docsByDay + // sort missing and ask for first to last + // integrate into docsByDay + + }, gotoDate(date, scroll) { // show this.$router.replace({ hash: date }) console.log('hash', this.$route.hash); // assure + this.assureDate(DateTime.fromISO(date)); // scroll }, }, -- GitLab