diff --git a/css/modern/all.css b/css/modern/all.css index 6b8de7fd..734bc526 100644 --- a/css/modern/all.css +++ b/css/modern/all.css @@ -874,6 +874,10 @@ variable-intellisense { color: var(--grades) !important; } +[modern=true]:root .gradebook-course.hierarchical-grading-report .item-row .title-column .title { + color: var(--text) !important; +} + [modern=true]:root .grade-active-color, [modern=true]:root .awarded-grade span { color: var(--grades) !important; diff --git a/js/all.js b/js/all.js index 3e497ff9..d87df2cf 100644 --- a/js/all.js +++ b/js/all.js @@ -1,4 +1,4 @@ -while (!window.splusPreload) { } +while (!window.splusLoaded && !window.splusLoaded.has("preload")) { } // Inform user about theme { @@ -1256,4 +1256,7 @@ function indicateSubmittedAssignments() { } setTimeout(indicateSubmitted, 1000); -} \ No newline at end of file +} + +window.splusLoaded.add("all"); +Logger.debug("Finished loading all.js"); \ No newline at end of file diff --git a/js/course.js b/js/course.js index 92193162..4184b1b7 100644 --- a/js/course.js +++ b/js/course.js @@ -1,3 +1,5 @@ +while (!window.splusLoaded && !window.splusLoaded.has("all")) { } + let courseIdNumber; let courseSettingsCourseName; (function () { diff --git a/js/courses.js b/js/courses.js index 64356432..8ce620a7 100644 --- a/js/courses.js +++ b/js/courses.js @@ -1,3 +1,5 @@ +while (!window.splusLoaded && !window.splusLoaded.has("all")) { } + for (let course of document.querySelectorAll("li.course-item.list-item")) { let parent = course.parentNode; let wrapper = document.createElement("div"); diff --git a/js/grades.js b/js/grades.js index eb7680da..5c59f2bf 100644 --- a/js/grades.js +++ b/js/grades.js @@ -1,4 +1,4 @@ -while (!window.splusPreload) { } +while (!window.splusLoaded && !window.splusLoaded.has("preload")) { } const timeout = ms => new Promise(res => setTimeout(res, ms)); const BUG_REPORT_FORM_LINK = "https://docs.google.com/forms/d/e/1FAIpQLScF1_MZofOWT9pkWp3EfKSvzCPpyevYtqbAucp1K5WKGlckiA/viewform?entry.118199430="; @@ -669,7 +669,7 @@ var fetchQueue = []; let total = 0; let totalPercentWeight = 0; let catWeight = 0; // 0 to 1 - for (let category of perRow.parentElement.getElementsByClassName("category-row")) { + for (let category of perRow.parentElement.querySelectorAll(`.category-row[data-parent-id="${perRow.dataset.id}]"`)) { let weightPercentElement = category.getElementsByClassName("percentage-contrib")[0]; if (!weightPercentElement) { continue; @@ -1086,7 +1086,7 @@ var fetchQueue = []; throw { listSearchErr: err, firstTryError: firstTryError }; } }; - fetchQueue.push(f); + fetchQueue.push([f, 0]); } // td-content-wrapper @@ -1234,7 +1234,7 @@ var fetchQueue = []; } else { let total = 0; let totalPercentWeight = 0; - for (let category of perRow.parentElement.getElementsByClassName("category-row")) { + for (let category of perRow.parentElement.querySelectorAll(`.category-row[data-parent-id="${perRow.dataset.id}"]`)) { let weightPercentElement = category.getElementsByClassName("percentage-contrib")[0]; if (!weightPercentElement) { continue; @@ -1560,26 +1560,26 @@ function createAddAssignmentElement(category) { return addAssignmentThing; } -function processNonenteredAssignments(sleep, attempts = 0) { - if (attempts > 3) { - // Remove the first element - fetchQueue.shift(); - attempts = 0; - Logger.warn("Maximum attempts reached; aborting"); - } +function processNonenteredAssignments() { if (fetchQueue.length > 0) { + let [func, attempts] = fetchQueue.shift() + sleep = attempts > 0 setTimeout(() => { - fetchQueue[0]().then(x => { - fetchQueue.splice(0, 1); + func().then(x => { processNonenteredAssignments(); }).catch(err => { Logger.warn("Caught error: ", err); Logger.log("Waiting 3 seconds to avoid rate limit"); - if ("status" in err && err.status === 403) { + if (err && err.firstTryError && err.firstTryError.status === 403) { attempts = 100; } - processNonenteredAssignments(true, attempts + 1); + if (attempts > 3) { + Logger.warn("Maximum attempts reached; aborting"); + } else { + fetchQueue.push([func, attempts + 1]) + } + processNonenteredAssignments(); }); }, sleep ? 3000 : 0); - } + } } diff --git a/js/home.js b/js/home.js index ce78e903..239a4973 100644 --- a/js/home.js +++ b/js/home.js @@ -1,3 +1,5 @@ +while (!window.splusLoaded && !window.splusLoaded.has("all")) { } + /** @typedef {{id:number,title:string,message:string,timestamp?:Date,icon?:string}} Broadcast */ let homeFeedContainer = document.getElementById("home-feed-container"); diff --git a/js/preload.js b/js/preload.js index 36096c62..725f8310 100644 --- a/js/preload.js +++ b/js/preload.js @@ -1151,4 +1151,5 @@ new Setting( element => element.value ); -window.splusPreload = true; \ No newline at end of file +window.splusLoaded = new Set(["preload"]); +Logger.debug("Finished loading preload.js"); \ No newline at end of file diff --git a/js/version-specific.js b/js/version-specific.js index 7e8e1680..fcdeed4f 100644 --- a/js/version-specific.js +++ b/js/version-specific.js @@ -242,6 +242,13 @@ let migrationsTo = { new Date(2021, 0 /* January */, 16) ) ]); + + var modalExistsInterval = setInterval(function () { + if (document.readyState === "complete" && openModal && document.getElementById("choose-theme-modal") && !document.querySelector(".splus-modal-open")) { + clearInterval(modalExistsInterval); + openModal("choose-theme-modal"); + } + }, 50); }, "7.2": function (currentVersion, previousVersion) { saveBroadcasts([ diff --git a/manifest.json b/manifest.json index fadbc984..1430cf49 100644 --- a/manifest.json +++ b/manifest.json @@ -9,7 +9,7 @@ "id": "schoology.plus@aopell.me" } }, - "version": "7.2", + "version": "7.2.1", "icons": { "128": "imgs/icon@128.png", "64": "imgs/icon@64.png", diff --git a/scss/modern/all.scss b/scss/modern/all.scss index 971313e2..18492e3d 100644 --- a/scss/modern/all.scss +++ b/scss/modern/all.scss @@ -926,12 +926,15 @@ variable-intellisense { // Grades Page .gradebook-course.hierarchical-grading-report { - .period-row .grade-column, .category-row .grade-column, .item-row .grade-column { color: var(--grades) !important; } + + .item-row .title-column .title { + color: var(--text) !important; + } } .grade-active-color,