mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-06-06 03:34:40 +00:00
Merge pull request #371 from BetterSEQTA/tutor-fix
fix [BUG] Seqta Tutor Lessons Color Not In Home Page And Assesments/Courses showing when not meant to
This commit is contained in:
@@ -104,17 +104,7 @@ export async function loadHomePage() {
|
||||
const date = new Date();
|
||||
const TodayFormatted = formatDate(date);
|
||||
|
||||
const [timetablePromise, assessmentsPromise, classesPromise, prefsPromise] = [
|
||||
fetch(`${location.origin}/seqta/student/load/timetable?`, {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({
|
||||
from: TodayFormatted,
|
||||
until: TodayFormatted,
|
||||
student: 69,
|
||||
}),
|
||||
}).then((res) => res.json()),
|
||||
|
||||
const [assessmentsPromise, classesPromise, prefsPromise] = [
|
||||
GetUpcomingAssessments(),
|
||||
|
||||
GetActiveClasses(),
|
||||
@@ -126,65 +116,13 @@ export async function loadHomePage() {
|
||||
}).then((res) => res.json()),
|
||||
];
|
||||
|
||||
const [timetableData, assessments, classes, prefs] = await Promise.all([
|
||||
timetablePromise,
|
||||
const [assessments, classes, prefs] = await Promise.all([
|
||||
assessmentsPromise,
|
||||
classesPromise,
|
||||
prefsPromise,
|
||||
]);
|
||||
|
||||
const dayContainer = document.getElementById("day-container");
|
||||
if (dayContainer && timetableData.payload.items.length > 0) {
|
||||
const lessonArray = timetableData.payload.items.sort((a: any, b: any) =>
|
||||
a.from.localeCompare(b.from),
|
||||
);
|
||||
const colours = await GetLessonColours();
|
||||
|
||||
dayContainer.innerHTML = "";
|
||||
for (let i = 0; i < lessonArray.length; i++) {
|
||||
const lesson = lessonArray[i];
|
||||
const subjectname = `timetable.subject.colour.${lesson.code}`;
|
||||
const subject = colours.find(
|
||||
(element: any) => element.name === subjectname,
|
||||
);
|
||||
|
||||
lesson.colour = subject
|
||||
? `--item-colour: ${subject.value};`
|
||||
: "--item-colour: #8e8e8e;";
|
||||
lesson.from = lesson.from.substring(0, 5);
|
||||
lesson.until = lesson.until.substring(0, 5);
|
||||
|
||||
if (settingsState.timeFormat === "12") {
|
||||
lesson.from = convertTo12HourFormat(lesson.from);
|
||||
lesson.until = convertTo12HourFormat(lesson.until);
|
||||
}
|
||||
|
||||
lesson.attendanceTitle = CheckUnmarkedAttendance(lesson.attendance);
|
||||
|
||||
const div = makeLessonDiv(lesson, i + 1);
|
||||
if (GetThresholdOfColor(subject?.value) > 300) {
|
||||
const firstChild = div.firstChild as HTMLElement;
|
||||
if (firstChild) {
|
||||
firstChild.classList.add("day-inverted");
|
||||
}
|
||||
}
|
||||
dayContainer.appendChild(div.firstChild!);
|
||||
}
|
||||
|
||||
if (currentSelectedDate.getDate() === date.getDate()) {
|
||||
for (let i = 0; i < lessonArray.length; i++) {
|
||||
CheckCurrentLesson(lessonArray[i], i + 1);
|
||||
}
|
||||
CheckCurrentLessonAll(lessonArray);
|
||||
}
|
||||
} else if (dayContainer) {
|
||||
dayContainer.innerHTML = `
|
||||
<div class="day-empty">
|
||||
<img src="${browser.runtime.getURL(LogoLight)}" />
|
||||
<p>No lessons available.</p>
|
||||
</div>`;
|
||||
}
|
||||
dayContainer?.classList.remove("loading");
|
||||
callHomeTimetable(TodayFormatted, true);
|
||||
|
||||
const activeClass = classes.find((c: any) => c.hasOwnProperty("active"));
|
||||
const activeSubjects = activeClass?.subjects || [];
|
||||
@@ -742,7 +680,8 @@ function callHomeTimetable(date: string, change?: any) {
|
||||
GetLessonColours().then((colours) => {
|
||||
let subjects = colours;
|
||||
for (let i = 0; i < lessonArray.length; i++) {
|
||||
let subjectname = `timetable.subject.colour.${lessonArray[i].code}`;
|
||||
|
||||
let subjectname = ((lessonArray[i].type == "tutorial") ? `timetable.tutor.${lessonArray[i].tutorID}` : `timetable.subject.colour.${lessonArray[i].code}`);
|
||||
|
||||
let subject = subjects.find(
|
||||
(element: any) => element.name === subjectname,
|
||||
@@ -930,17 +869,19 @@ function makeLessonDiv(lesson: any, num: number) {
|
||||
programmeID,
|
||||
metaID,
|
||||
assessments,
|
||||
type
|
||||
} = lesson;
|
||||
|
||||
let lessonString = `
|
||||
<div class="day" id="${code + num}" style="${colour}">
|
||||
<h2>${description || "Unknown"}</h2>
|
||||
<h2>${(type == "class") ? description : (type == "tutorial") ? "Tutorial" : "Unknown"}</h2>
|
||||
<h3>${staff || "Unknown"}</h3>
|
||||
<h3>${room || "Unknown"}</h3>
|
||||
<h3>${(type == "class") ? room : (type == "tutorial") ? "N/A" : "Unknown"}</h3>
|
||||
<h4>${from || "Unknown"} - ${until || "Unknown"}</h4>
|
||||
<h5>${attendanceTitle || "Unknown"}</h5>
|
||||
`;
|
||||
|
||||
if (type == "class") {
|
||||
if (programmeID !== 0) {
|
||||
lessonString += `
|
||||
<div class="day-button clickable" style="right: 5px;" onclick="location.href='${buildAssessmentURL(programmeID, metaID)}'">${assessmentsicon}</div>
|
||||
@@ -965,6 +906,7 @@ function makeLessonDiv(lesson: any, num: number) {
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
}
|
||||
|
||||
lessonString += "</div>";
|
||||
const element = stringToHTML(lessonString);
|
||||
|
||||
Reference in New Issue
Block a user