From 1429943dbea706b0e743e7715c5f2bbbc7150a63 Mon Sep 17 00:00:00 2001 From: Zan <62830223+Zan1456@users.noreply.github.com> Date: Mon, 12 Jan 2026 19:53:35 +0100 Subject: [PATCH] #23 fix --- timetable/timetable.js | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/timetable/timetable.js b/timetable/timetable.js index bb5322a..94a4519 100644 --- a/timetable/timetable.js +++ b/timetable/timetable.js @@ -504,6 +504,26 @@ return timeA - timeB; }, ); + + const timeDurations = {}; + times.forEach(time => { + const lessonsAtTime = regularLessons.filter(l => l.startTime === time); + let maxDuration = 45; + + lessonsAtTime.forEach(lesson => { + if (lesson.endTime) { + const startMinutes = helper.convertTimeToMinutes(lesson.startTime); + const endMinutes = helper.convertTimeToMinutes(lesson.endTime); + const duration = endMinutes - startMinutes; + if (duration > maxDuration) { + maxDuration = duration; + } + } + }); + + timeDurations[time] = maxDuration; + }); + const days = [ LanguageManager.t("timetable.monday"), LanguageManager.t("timetable.tuesday"), @@ -561,24 +581,27 @@ return lastTime; }); + const duration = timeDurations[time] || 45; + const slotHeight = Math.max(84, (duration / 45) * 100); + return ` -
${time}
+
${time}
${Array(5) .fill() .map((_, dayIndex) => { const dayLessons = regularLessons.filter( (l) => l.startTime === time && l.day === dayIndex, ); - + const lastLessonTime = lastLessonTimes[dayIndex]; const isAfterLastLesson = lastLessonTime && helper.convertTimeToMinutes(time) > helper.convertTimeToMinutes(lastLessonTime); - + if (dayLessons.length === 0 && isAfterLastLesson) { - return `
`; + return `
`; } - + return ` -
+
${dayLessons.length === 0 ? '
' : ''} ${dayLessons .map(