diff --git a/absences/absences.js b/absences/absences.js index 388ed32..a99215d 100644 --- a/absences/absences.js +++ b/absences/absences.js @@ -89,14 +89,14 @@ async function transformAbsencesPage() {
@@ -218,7 +218,7 @@ function generateAbsencesHTML(absences) { ${ absence.justificationStatus === "justified" - ? `check_circle ${LanguageManager.t("absences.justified")}` + ? `Igazolt ${LanguageManager.t("absences.justified")}` : absence.justificationStatus === "unjustified" ? `cancel ${LanguageManager.t("absences.unjustified")}` : `pending ${LanguageManager.t("absences.pending")}` diff --git a/icons/ArrowsExpandFull.svg b/icons/ArrowsExpandFull.svg new file mode 100644 index 0000000..6f908c2 --- /dev/null +++ b/icons/ArrowsExpandFull.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/BadgeCheck.svg b/icons/BadgeCheck.svg new file mode 100644 index 0000000..9ac0d2b --- /dev/null +++ b/icons/BadgeCheck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/Calendar.svg b/icons/Calendar.svg new file mode 100644 index 0000000..7d752b5 --- /dev/null +++ b/icons/Calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/ChevronLeftCircle.svg b/icons/ChevronLeftCircle.svg new file mode 100644 index 0000000..2bafa6b --- /dev/null +++ b/icons/ChevronLeftCircle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/ChevronRightCircle.svg b/icons/ChevronRightCircle.svg new file mode 100644 index 0000000..c40a1f8 --- /dev/null +++ b/icons/ChevronRightCircle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/CloseCircle.svg b/icons/CloseCircle.svg new file mode 100644 index 0000000..4116cde --- /dev/null +++ b/icons/CloseCircle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/Subject.svg b/icons/Subject.svg new file mode 100644 index 0000000..94937ab --- /dev/null +++ b/icons/Subject.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/timetable/timetable.css b/timetable/timetable.css index d1bd9fc..d8f42a1 100644 --- a/timetable/timetable.css +++ b/timetable/timetable.css @@ -195,6 +195,31 @@ body { font-weight:500; line-height:130%; } +.notice-header { + min-width:80px; +} +.notice-slot { + padding:4px 8px; + min-height:auto; +} +.special-day-notice { + background:#F99F50; + color:white; + padding:8px 12px; + border-radius:8px; + text-align:center; + box-shadow:0 1px 3px rgba(0,0,0,0.1); + font-size:0.85rem; +} +.special-day-notice .special-day-title { + font-weight:600; + margin-bottom:2px; +} +.special-day-notice .special-day-subtitle { + font-size:0.75rem; + opacity:0.9; + font-weight:400; +} .time-slot { padding:12px; text-align:center; @@ -660,6 +685,12 @@ body { .grid-header.active { display:flex !important; } +.notice-slot { + display:none; +} +.notice-slot.active { + display:block; +} .lesson-slot { display:none; } diff --git a/timetable/timetable.js b/timetable/timetable.js index f46dbe4..49d2173 100644 --- a/timetable/timetable.js +++ b/timetable/timetable.js @@ -172,6 +172,9 @@ LanguageManager.t("timetable.friday"), ]; + // Check if there are any special days to show notice row + const hasSpecialDays = specialDayLessons.length > 0; + return `
${days @@ -184,6 +187,27 @@ `; }) .join("")} + ${hasSpecialDays ? ` +
+ ${Array(5) + .fill() + .map((_, dayIndex) => { + const specialDay = specialDayLessons.find( + (l) => l.day === dayIndex, + ); + return ` +
+ ${specialDay ? ` +
+
${specialDay.subject}
+ ${specialDay.testInfo ? `
${specialDay.testInfo}
` : ""} +
+ ` : ""} +
+ `; + }) + .join("")} + ` : ""} ${times .map( (time, timeIndex) => ` @@ -194,21 +218,10 @@ const dayLessons = regularLessons.filter( (l) => l.startTime === time && l.day === dayIndex, ); - const specialDay = specialDayLessons.find( - (l) => l.day === dayIndex, - ); return ` -
- ${ - specialDay && timeIndex === 0 - ? ` -
-
${specialDay.subject}
- ${specialDay.testInfo ? `
${specialDay.testInfo}
` : ""} -
- ` - : dayLessons +
+ ${dayLessons .map( (lesson) => `