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 date = new Date();
|
||||||
const TodayFormatted = formatDate(date);
|
const TodayFormatted = formatDate(date);
|
||||||
|
|
||||||
const [timetablePromise, assessmentsPromise, classesPromise, prefsPromise] = [
|
const [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()),
|
|
||||||
|
|
||||||
GetUpcomingAssessments(),
|
GetUpcomingAssessments(),
|
||||||
|
|
||||||
GetActiveClasses(),
|
GetActiveClasses(),
|
||||||
@@ -126,65 +116,13 @@ export async function loadHomePage() {
|
|||||||
}).then((res) => res.json()),
|
}).then((res) => res.json()),
|
||||||
];
|
];
|
||||||
|
|
||||||
const [timetableData, assessments, classes, prefs] = await Promise.all([
|
const [assessments, classes, prefs] = await Promise.all([
|
||||||
timetablePromise,
|
|
||||||
assessmentsPromise,
|
assessmentsPromise,
|
||||||
classesPromise,
|
classesPromise,
|
||||||
prefsPromise,
|
prefsPromise,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const dayContainer = document.getElementById("day-container");
|
callHomeTimetable(TodayFormatted, true);
|
||||||
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");
|
|
||||||
|
|
||||||
const activeClass = classes.find((c: any) => c.hasOwnProperty("active"));
|
const activeClass = classes.find((c: any) => c.hasOwnProperty("active"));
|
||||||
const activeSubjects = activeClass?.subjects || [];
|
const activeSubjects = activeClass?.subjects || [];
|
||||||
@@ -742,7 +680,8 @@ function callHomeTimetable(date: string, change?: any) {
|
|||||||
GetLessonColours().then((colours) => {
|
GetLessonColours().then((colours) => {
|
||||||
let subjects = colours;
|
let subjects = colours;
|
||||||
for (let i = 0; i < lessonArray.length; i++) {
|
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(
|
let subject = subjects.find(
|
||||||
(element: any) => element.name === subjectname,
|
(element: any) => element.name === subjectname,
|
||||||
@@ -930,17 +869,19 @@ function makeLessonDiv(lesson: any, num: number) {
|
|||||||
programmeID,
|
programmeID,
|
||||||
metaID,
|
metaID,
|
||||||
assessments,
|
assessments,
|
||||||
|
type
|
||||||
} = lesson;
|
} = lesson;
|
||||||
|
|
||||||
let lessonString = `
|
let lessonString = `
|
||||||
<div class="day" id="${code + num}" style="${colour}">
|
<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>${staff || "Unknown"}</h3>
|
||||||
<h3>${room || "Unknown"}</h3>
|
<h3>${(type == "class") ? room : (type == "tutorial") ? "N/A" : "Unknown"}</h3>
|
||||||
<h4>${from || "Unknown"} - ${until || "Unknown"}</h4>
|
<h4>${from || "Unknown"} - ${until || "Unknown"}</h4>
|
||||||
<h5>${attendanceTitle || "Unknown"}</h5>
|
<h5>${attendanceTitle || "Unknown"}</h5>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
if (type == "class") {
|
||||||
if (programmeID !== 0) {
|
if (programmeID !== 0) {
|
||||||
lessonString += `
|
lessonString += `
|
||||||
<div class="day-button clickable" style="right: 5px;" onclick="location.href='${buildAssessmentURL(programmeID, metaID)}'">${assessmentsicon}</div>
|
<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>
|
</div>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
lessonString += "</div>";
|
lessonString += "</div>";
|
||||||
const element = stringToHTML(lessonString);
|
const element = stringToHTML(lessonString);
|
||||||
|
|||||||
Reference in New Issue
Block a user