From bd25c4876eb00a478923fe82023b2825883ba208 Mon Sep 17 00:00:00 2001 From: Moritz Strohm <strohm@data-quest.de> Date: Fri, 17 Dec 2021 14:32:38 +0100 Subject: [PATCH] fixed the calculation and the display of lecture weeks when the lecture period starts inside a week, re #453 --- resources/assets/javascripts/lib/resources.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/resources/assets/javascripts/lib/resources.js b/resources/assets/javascripts/lib/resources.js index a2060294054..1aa861a6ebb 100644 --- a/resources/assets/javascripts/lib/resources.js +++ b/resources/assets/javascripts/lib/resources.js @@ -737,11 +737,25 @@ class Resources static updateBookingPlanDateInfos(plan_begin, plan_end, semester = null) { if (semester) { - let show_lecture_week = plan_end.getTime()/1000 >= semester.seminars_begin && plan_end.getTime()/1000 < semester.seminars_end; + let show_lecture_week = false; + let fake_plan_end = new Date(plan_end.getTime() - 1000); + if (plan_begin.getUTCDay() == fake_plan_end.getUTCDay()) { + show_lecture_week = (plan_begin.getTime() / 1000 + 43200) >= semester.seminars_begin && (plan_begin.getTime() / 1000) < semester.seminars_end; + } else { + show_lecture_week = (plan_end.getTime() / 1000 + 43200) >= semester.seminars_begin && (plan_end.getTime() / 1000) < semester.seminars_end; + } $(".booking-plan-header").data('semester', semester); $("#booking-plan-header-semname").text(semester.title); if (show_lecture_week) { - let sem_week = Math.floor((plan_end.getTime() / 1000 - 10800 - semester.seminars_begin) / 604800) + 1; + let lecture_week_start = new Date((semester.seminars_begin + 43200) * 1000); + let lecture_week_start_day = lecture_week_start.getDay(); + if (lecture_week_start_day == 0) { + //Sunday is 7, not 0! + lecture_week_start_day = 7; + } + lecture_week_start_day--; + let normal_sem_week_begin = semester.seminars_begin - (lecture_week_start_day * 86400); + let sem_week = Math.floor((plan_end.getTime() / 1000 - 10800 - normal_sem_week_begin) / 604800) + 1; if (sem_week > 0) { $("#booking-plan-header-semweek").text(sem_week); $("#booking-plan-header-semweek-part").show(); -- GitLab