mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-06-06 03:34:40 +00:00
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "betterseqtaplus",
|
"name": "betterseqtaplus",
|
||||||
"version": "3.4.4",
|
"version": "3.4.5",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"description": "Enhance SEQTA Learn's usability and aesthetics! A fork of BetterSEQTA to continue development add add heaps more features!",
|
"description": "Enhance SEQTA Learn's usability and aesthetics! A fork of BetterSEQTA to continue development add add heaps more features!",
|
||||||
"browserslist": "> 0.5%, last 2 versions, not dead",
|
"browserslist": "> 0.5%, last 2 versions, not dead",
|
||||||
|
|||||||
+50
-7
@@ -163,7 +163,9 @@ export function OpenWhatsNewPopup() {
|
|||||||
let text = stringToHTML(
|
let text = stringToHTML(
|
||||||
/* html */ `
|
/* html */ `
|
||||||
<div class="whatsnewTextContainer" style="height: 50%;overflow-y: scroll;">
|
<div class="whatsnewTextContainer" style="height: 50%;overflow-y: scroll;">
|
||||||
|
<h1>3.4.5 - Everything Subject averages related</h1>
|
||||||
|
<li>Fixed subject averages not showing up with non-percent grades</li>
|
||||||
|
<li>Added Toggle for Letter/Percent Grades</li>
|
||||||
<h1>3.4.4 - Bug Fixes and Improvements</h1>
|
<h1>3.4.4 - Bug Fixes and Improvements</h1>
|
||||||
<li>Added vertical zoom to the timetable</li>
|
<li>Added vertical zoom to the timetable</li>
|
||||||
<li>Fixed theme importing failing when images were included</li>
|
<li>Fixed theme importing failing when images were included</li>
|
||||||
@@ -2919,7 +2921,13 @@ async function handleAssessments(node: Element): Promise<void> {
|
|||||||
function parseGrade(gradeText: string): number {
|
function parseGrade(gradeText: string): number {
|
||||||
// Remove any whitespace
|
// Remove any whitespace
|
||||||
const trimmedGrade = gradeText.trim().toUpperCase();
|
const trimmedGrade = gradeText.trim().toUpperCase();
|
||||||
|
// Check if it is a non-percent grade
|
||||||
|
if (trimmedGrade.includes('/')) {
|
||||||
|
const grade = trimmedGrade.split("/");
|
||||||
|
var a = grade[1] as unknown as number
|
||||||
|
var b = grade[0] as unknown as number
|
||||||
|
return ((b/a) * 100);
|
||||||
|
}
|
||||||
// Check if it's a percentage
|
// Check if it's a percentage
|
||||||
if (trimmedGrade.includes('%')) {
|
if (trimmedGrade.includes('%')) {
|
||||||
return parseFloat(trimmedGrade.replace('%', '')) || 0;
|
return parseFloat(trimmedGrade.replace('%', '')) || 0;
|
||||||
@@ -2953,15 +2961,50 @@ async function handleAssessments(node: Element): Promise<void> {
|
|||||||
|
|
||||||
// Function to add the average assessment item
|
// Function to add the average assessment item
|
||||||
function addAverageAssessment() {
|
function addAverageAssessment() {
|
||||||
const average = calculateAverageGrade();
|
const numaverage = calculateAverageGrade();
|
||||||
if (average === 0) return;
|
if (numaverage === 0) return;
|
||||||
|
|
||||||
// Remove existing average section if it exists
|
// Remove existing average section if it exists
|
||||||
const existingAverage = document.querySelector('.AssessmentItem__AssessmentItem___2EZ95:first-child');
|
const existingAverage = document.querySelector('.AssessmentItem__AssessmentItem___2EZ95:first-child');
|
||||||
if (existingAverage?.querySelector('.AssessmentItem__title___2bELn')?.textContent === 'Subject Average') {
|
if (existingAverage?.querySelector('.AssessmentItem__title___2bELn')?.textContent === 'Subject Average') {
|
||||||
existingAverage.remove();
|
existingAverage.remove();
|
||||||
}
|
}
|
||||||
|
const preaverage = numaverage.toFixed(0) as unknown as number
|
||||||
|
const prepaverage = Math.ceil(preaverage / 5) * 5;
|
||||||
|
console.info(prepaverage)
|
||||||
|
const NumberGradeMap: Record<number, string> = {
|
||||||
|
100: "A+",
|
||||||
|
95: "A",
|
||||||
|
90: "A-",
|
||||||
|
85: "B+",
|
||||||
|
80: "B",
|
||||||
|
75: "B-",
|
||||||
|
70: "C+",
|
||||||
|
65: "C",
|
||||||
|
60: "C-",
|
||||||
|
55: "D+",
|
||||||
|
50: "D",
|
||||||
|
45: "D-",
|
||||||
|
40: "E+",
|
||||||
|
35: "E",
|
||||||
|
30: "E-",
|
||||||
|
0: "F"
|
||||||
|
};
|
||||||
|
var letteraverage = "N/A"
|
||||||
|
const check = Object.prototype.hasOwnProperty.call(NumberGradeMap, prepaverage);
|
||||||
|
if (check) {
|
||||||
|
console.debug("[BetterSEQTA+ Debugger] Match found")
|
||||||
|
letteraverage = NumberGradeMap[prepaverage];
|
||||||
|
} else {
|
||||||
|
console.debug("[BetterSEQTA+ Debugger] No match found")
|
||||||
|
letteraverage = "N/A"
|
||||||
|
}
|
||||||
|
var average = "N/A"
|
||||||
|
if (settingsState.lettergrade) {
|
||||||
|
average = letteraverage
|
||||||
|
} else {
|
||||||
|
average = `${numaverage.toFixed(2)}%`
|
||||||
|
}
|
||||||
const averageElement = stringToHTML(/* html */`
|
const averageElement = stringToHTML(/* html */`
|
||||||
<div class="AssessmentItem__AssessmentItem___2EZ95">
|
<div class="AssessmentItem__AssessmentItem___2EZ95">
|
||||||
<div class="AssessmentItem__metaContainer___dMKma">
|
<div class="AssessmentItem__metaContainer___dMKma">
|
||||||
@@ -2972,8 +3015,8 @@ async function handleAssessments(node: Element): Promise<void> {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="Thermoscore__Thermoscore___2tWMi">
|
<div class="Thermoscore__Thermoscore___2tWMi">
|
||||||
<div class="Thermoscore__fill___35WjF" style="width: ${average.toFixed(2)}%;">
|
<div class="Thermoscore__fill___35WjF" style="width: ${numaverage.toFixed(2)}%">
|
||||||
<div class="Thermoscore__text___1NdvB" title="${average.toFixed(2)}%">${average.toFixed(2)}%</div>
|
<div class="Thermoscore__text___1NdvB" title="${average};">${average}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
|
|
||||||
<div class="flex flex-col divide-y divide-zinc-100 dark:divide-zinc-700">
|
<div class="flex flex-col divide-y divide-zinc-100 dark:divide-zinc-700">
|
||||||
{#each [
|
{#each [
|
||||||
|
|
||||||
{
|
{
|
||||||
title: "Transparency Effects",
|
title: "Transparency Effects",
|
||||||
description: "Enables transparency effects on certain elements such as blur. (May impact battery life)",
|
description: "Enables transparency effects on certain elements such as blur. (May impact battery life)",
|
||||||
@@ -107,6 +108,16 @@
|
|||||||
onChange: (isOn: boolean) => settingsState.assessmentsAverage = isOn
|
onChange: (isOn: boolean) => settingsState.assessmentsAverage = isOn
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "Letter Grade Averages",
|
||||||
|
description: "Shows the letter grade instead of the percentage in subject averages.",
|
||||||
|
id: 8,
|
||||||
|
Component: Switch,
|
||||||
|
props: {
|
||||||
|
state: $settingsState.lettergrade,
|
||||||
|
onChange: (isOn: boolean) => settingsState.lettergrade = isOn
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "Lesson Alerts",
|
title: "Lesson Alerts",
|
||||||
description: "Sends a native browser notification ~5 minutes prior to lessons.",
|
description: "Sends a native browser notification ~5 minutes prior to lessons.",
|
||||||
|
|||||||
Reference in New Issue
Block a user