From a94d8d8fa5888b674710d842179ac4d76fb2cc48 Mon Sep 17 00:00:00 2001 From: Johann Hoffmann Date: Wed, 13 Nov 2024 13:57:37 +0100 Subject: [PATCH] calendar minimized only using slot; showing whole week in stundeplan widget tagesansicht grouped by day; everything in past has 0.5 opacity --- public/js/components/Calendar/Minimized.js | 3 - .../components/DashboardWidget/Stundenplan.js | 60 +++++-------------- public/js/composables/CalendarDate.js | 10 ++++ 3 files changed, 26 insertions(+), 47 deletions(-) diff --git a/public/js/components/Calendar/Minimized.js b/public/js/components/Calendar/Minimized.js index 71d45f6ba..fc0f96785 100644 --- a/public/js/components/Calendar/Minimized.js +++ b/public/js/components/Calendar/Minimized.js @@ -23,9 +23,6 @@ export default { }, template: `
-
- -
` } diff --git a/public/js/components/DashboardWidget/Stundenplan.js b/public/js/components/DashboardWidget/Stundenplan.js index e68fcdebd..dbf485a7b 100644 --- a/public/js/components/DashboardWidget/Stundenplan.js +++ b/public/js/components/DashboardWidget/Stundenplan.js @@ -29,18 +29,18 @@ export default { } }, computed: { - nextEventsGrouped() { + allEventsGrouped() { // groups all events of all days until end of week together - return new Map((this.events || []).filter(evt => evt.end < this.endOfWeek && evt.start >= this.currentDay).reduce((acc, cur) => { + const currentCalendarDate = new CalendarDate(this.currentDay) + const mapArr = currentCalendarDate.wholeWorkWeek.map((d) => [new CalendarDate(d), []]) + + return new Map((this.events || []).filter(evt => evt.end < currentCalendarDate.lastDayOfWeek && evt.start >= currentCalendarDate.firstDayOfWeek).reduce((acc, cur) => { const date = new CalendarDate(new Date(cur.datum)) const arr = acc.find(el => el[0].compare(date)) - if(arr) { - arr[1].push(cur) - } else { - acc.push([date, [cur]]) - } + arr[1].push(cur) + return acc - }, [])) + }, mapArr)) }, currentEvents() { return (this.events || []).filter(evt => evt.end < this.dayAfterCurrentDay && evt.start >= this.currentDay); @@ -50,12 +50,6 @@ export default { currentDay.setDate(currentDay.getDate() + 1); return currentDay; }, - endOfWeek() { - let endOfWeek = new Date(this.currentDay); // - endOfWeek.setDate(this.currentDay.getDate() + (7 - this.currentDay.getDay())); - endOfWeek.setHours(23, 59, 59, 999); - return endOfWeek; - }, monthFirstDay: function () { return this.calendarDateToString(this.calendarDate.cdFirstDayOfCalendarMonth); }, @@ -67,6 +61,7 @@ export default { getEventStyle: function(evt) { const styles = {'background-color': evt.color}; if(evt.start.getTime() < Date.now()) styles.opacity = 0.5; + return styles; }, getCurrentDate: function() { @@ -194,12 +189,15 @@ export default { - - -
-
- -
-
- -
- -
- {{ p.t('lehre/noLvFound') }} -
` } \ No newline at end of file diff --git a/public/js/composables/CalendarDate.js b/public/js/composables/CalendarDate.js index 1b311739c..09bae1f21 100644 --- a/public/js/composables/CalendarDate.js +++ b/public/js/composables/CalendarDate.js @@ -68,6 +68,16 @@ class CalendarDate { lastDayOfWeek.setDate(this.d -(lastDayOfWeek.getDay()+7-this.weekStart)%7 +6); return lastDayOfWeek; } + get wholeWorkWeek() { + const days = [] + const date = new Date(this.y, this.m, this.d); + for(let i = 0; i < 5; i++) { + days[i] = new Date(this.y, this.m, this.d) + days[i].setDate(this.d -(date.getDay()+7-this.weekStart)%7 + i) + } + console.log('wholeWorkWeek', days) + return days + } get cdLastDayOfWeek() { return new CalendarDate(this.lastDayOfWeek); }