diff --git a/404.html b/404.html index 6892d7c..35bb94d 100644 --- a/404.html +++ b/404.html @@ -82,25 +82,6 @@

404 Not Found

- - -

-
-
- - - - -
-
Virtual Checker Banner diff --git a/admin/archive.html b/admin/archive.html index a0f07af..a59520d 100644 --- a/admin/archive.html +++ b/admin/archive.html @@ -162,39 +162,11 @@

Archive

- -
- - -

-
-
- - - - -
-
Virtual Checker Banner diff --git a/admin/backups.html b/admin/backups.html index 1ceacb1..4dd7f63 100644 --- a/admin/backups.html +++ b/admin/backups.html @@ -81,39 +81,11 @@

Backups

- -
- - -

-
-
- - - - -
-
Virtual Checker Banner diff --git a/admin/courses.html b/admin/courses.html index 77fc07d..632493c 100644 --- a/admin/courses.html +++ b/admin/courses.html @@ -80,39 +80,11 @@

Courses

- -
- - -

-
-
- - - - -
-
Virtual Checker Banner diff --git a/admin/editor.html b/admin/editor.html index 8413cfe..6ae34ab 100644 --- a/admin/editor.html +++ b/admin/editor.html @@ -153,39 +153,11 @@

Questions

- -
- - -

-
-
- - - - -
-
Virtual Checker Banner diff --git a/admin/index.html b/admin/index.html index 2871363..027a451 100644 --- a/admin/index.html +++ b/admin/index.html @@ -236,39 +236,11 @@

Segments

- -
- - -

-
-
- - - - -
-
Virtual Checker Banner diff --git a/admin/logs.html b/admin/logs.html index 35e2b8e..068e5b6 100644 --- a/admin/logs.html +++ b/admin/logs.html @@ -134,39 +134,11 @@

Logs

- -
- - -

-
-
- - - - -
-
Virtual Checker Banner diff --git a/admin/passwords.html b/admin/passwords.html index c03712c..ca01fb0 100644 --- a/admin/passwords.html +++ b/admin/passwords.html @@ -82,39 +82,11 @@

Passwords

- -
- - -

-
-
- - - - -
-
Virtual Checker Banner diff --git a/admin/questions.html b/admin/questions.html index 3d73e30..9039864 100644 --- a/admin/questions.html +++ b/admin/questions.html @@ -158,39 +158,11 @@

Questions

- -
- - -

-
-
- - - - -
-
Virtual Checker Banner diff --git a/admin/reports.html b/admin/reports.html index 7addf5b..d59cbe8 100644 --- a/admin/reports.html +++ b/admin/reports.html @@ -114,8 +114,8 @@

Sort & Filter

-
-

Seat Codes

+
+ Seat Codes
@@ -135,15 +135,15 @@

Seat Codes

-
-
-

Segments

+ +
+ Segments
-
-
-

Questions

+ +
+ Questions
-
+
@@ -161,39 +161,11 @@

Questions

- -
- - -

-
-
- - - - -
-
Virtual Checker Banner diff --git a/admin/responses.html b/admin/responses.html index e98f4a9..a884f18 100644 --- a/admin/responses.html +++ b/admin/responses.html @@ -243,39 +243,11 @@

Marked Responses

- -
- - -

-
-
- - - - -
-
Virtual Checker Banner diff --git a/admin/users.html b/admin/users.html index a33f380..0d94dbc 100644 --- a/admin/users.html +++ b/admin/users.html @@ -79,39 +79,11 @@

Users

- -
- - -

-
-
- - - - -
-
Virtual Checker Banner diff --git a/index.html b/index.html index 322b048..f78917a 100644 --- a/index.html +++ b/index.html @@ -117,7 +117,30 @@

Course Completed

Course Completed, Mastery Achieved

You have answered all questions in all segments in this course correctly.

+
+
+ + Mastery +
+
+ + Completed +
+
+ + Incomplete, Overdue +
+
+ + Not Started, Overdue +
+
+ + Not Due +
+
    + @@ -303,6 +327,7 @@

    +
    - ${(questionResponses.length != 0) ? `
    - ${'Rendering...'} -
    ` : ''}`; + ${(questionResponses.length != 0) ? `
    Rendering...
    ` : ''}`; }); expandedReports.forEach(er => { if (document.getElementById(er)) { diff --git a/src/checker/checker.js b/src/checker/checker.js index b27cb94..80b2206 100644 --- a/src/checker/checker.js +++ b/src/checker/checker.js @@ -7,7 +7,7 @@ import Element from "/src/modules/element.js"; import extendedSchedule from "/src/periods/extendedSchedule.json"; import * as themes from "/src/themes/themes.js"; -import { autocomplete, uniqueSymbols, insertFromIndex } from "/src/symbols/symbols.js"; +import { autocomplete, uniqueSymbols } from "/src/symbols/symbols.js"; import { unixToString, unixToTimeString } from "/src/modules/time.js"; import { getExtendedPeriodRange } from "/src/periods/periods"; import { convertLatexToAsciiMath, convertLatexToMarkup, renderMathInElement } from "mathlive"; @@ -787,8 +787,13 @@ try { } const li = document.createElement('li'); li.classList.add(statusLabel.replace(/\s+/g, '-').toLowerCase()); + li.style.color = (correctCount === totalQuestions) ? 'mediumseagreen' : (attemptedCount === totalQuestions) ? 'royalblue' : ((segment.due && (new Date(`${segment.due}T00:00:00`).getTime() < new Date().setHours(0, 0, 0, 0))) ? ((attemptedCount === 0) ? 'indianred' : 'darkorange') : ''); li.innerHTML = `${icon} ${segment.number} - ${segment.name.length > 50 ? segment.name.substring(0, 50 - 3).trim() + '...' : segment.name}:

    ${statusLabel}

    ${attemptedCount}/${totalQuestions} Answered • ${correctCount}/${totalQuestions} Correct (${(totalQuestions > 0) ? Math.round((correctCount / totalQuestions) * 100) : 0}%)`; document.getElementById("segments-completed").querySelector('ul').append(li); + li.addEventListener('click', () => { + segments.value = segment.id; + updateSegment(); + }); }); if (anyQuestionsInCourse && (masterySegments.length > 0) && masterySegments.every(Boolean)) { document.getElementById("segments-completed").classList.add('mastery'); @@ -1433,14 +1438,15 @@ try { newSetInput.setAttribute('type', 'text'); newSetInput.setAttribute('autocomplete', 'off'); newSetInput.setAttribute('data-set-input', Number(highestDataElement.getAttribute('data-set-input')) + 1); - const buttonGrid = document.querySelectorAll('[data-answer-mode="set"] .button-grid')[1]; + const buttonGrid = document.querySelector('[data-answer-mode="set"] .button-grid:has([id="set-input"])'); + if (!buttonGrid) return; const insertBeforePosition = buttonGrid.children.length - 2; if (insertBeforePosition > 0) { buttonGrid.insertBefore(newSetInput, buttonGrid.children[insertBeforePosition]); } else { buttonGrid.appendChild(newSetInput); } - document.querySelectorAll('[data-answer-mode="set"] .button-grid')[1].style.flexWrap = (setInputs.length > 9) ? 'wrap' : 'nowrap'; + buttonGrid.style.flexWrap = (setInputs.length > 9) ? 'wrap' : 'nowrap'; newSetInput.focus(); document.querySelector("[data-remove-set-input]").disabled = false; } diff --git a/src/design.css b/src/design.css index 774b582..3af4f56 100644 --- a/src/design.css +++ b/src/design.css @@ -119,6 +119,16 @@ button.error { background: indianred !important; } +button.fill { + background: var(--accent-color) !important; + color: var(--accent-text-color) !important; +} + +button.fill:hover { + background: var(--text-color) !important; + color: var(--surface-color) !important; +} + button:disabled { opacity: 0.75; pointer-events: none; @@ -1334,6 +1344,10 @@ hidden, background: darkorange; } +.color-box.info { + background: royalblue; +} + .seat-code-reports { gap: 12.5px !important; } @@ -1543,6 +1557,7 @@ hidden, overflow: hidden; width: -webkit-fill-available; max-width: max-content; + cursor: pointer; } #segment-completed li p, @@ -1563,23 +1578,23 @@ hidden, max-width: max-content; } -#segment-completed:not(.incomplete) > *:not(ul).incomplete, -#segments-completed:not(.incomplete) > *:not(ul).incomplete { +#segment-completed:not(.incomplete) > *:not(ul):not(.color-info):not(button).incomplete, +#segments-completed:not(.incomplete) > *:not(ul):not(.color-info):not(button).incomplete { display: none; } -#segment-completed.incomplete > *:not(ul):not(.incomplete), -#segments-completed.incomplete > *:not(ul):not(.incomplete) { +#segment-completed.incomplete > *:not(ul):not(.color-info):not(button):not(.incomplete), +#segments-completed.incomplete > *:not(ul):not(.color-info):not(button):not(.incomplete) { display: none; } -#segment-completed:not(.complete) > *:not(ul).complete, -#segments-completed:not(.complete) > *:not(ul).complete { +#segment-completed:not(.complete) > *:not(ul):not(.color-info):not(button).complete, +#segments-completed:not(.complete) > *:not(ul):not(.color-info):not(button).complete { display: none; } -#segment-completed.complete > *:not(ul):not(.complete), -#segments-completed.complete > *:not(ul):not(.complete) { +#segment-completed.complete > *:not(ul):not(.color-info):not(button):not(.complete), +#segments-completed.complete > *:not(ul):not(.color-info):not(button):not(.complete) { display: none; } diff --git a/src/layout.css b/src/layout.css index c5e4d41..5134e64 100644 --- a/src/layout.css +++ b/src/layout.css @@ -318,6 +318,10 @@ body:has(.island.visible) #checker { display: none; } +#history-navigation { + margin-top: 10px; +} + #history-feed { height: 400px; } diff --git a/src/modules/ui.css b/src/modules/ui.css index 27c9789..1e19292 100644 --- a/src/modules/ui.css +++ b/src/modules/ui.css @@ -1196,3 +1196,42 @@ body:has(.topbar) #checker.horizontal .column:last-child { padding: 7.5px 17.5px 2.5px 17.5px; border-radius: 50vh 50vh 0 0; } + +[data-manual-reset-cache] { + margin-top: 10px; +} + +details.section { + align-items: stretch; +} + +summary { + display: block; + font-size: 1.75rem; + font-weight: bold; + cursor: pointer; +} + +summary::after { + display: inline-block; + font-family: bootstrap-icons !important; + font-size: 1rem; + font-style: normal; + font-weight: normal !important; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: -0.125em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\F10E"; + transition: transform 0.25s ease-in-out; + margin-left: 10px; + transform: scale(-1, 1); +} + +.segment-marked-for-review-count { + display: flex; + gap: 5px; + margin-left: auto; +} diff --git a/src/themes/themes.js b/src/themes/themes.js index 744591f..7c94c27 100644 --- a/src/themes/themes.js +++ b/src/themes/themes.js @@ -28,7 +28,7 @@ export function resetTheme() { disableTransitions(); document.body.removeAttribute("data-theme"); removeCustomTheme(); - document.getElementById("theme-preview").removeAttribute("data-theme"); + document.getElementById("theme-preview")?.removeAttribute("data-theme"); enableTransitions(); storage.set("theme", "default"); storage.delete("custom-theme"); diff --git a/ta/index.html b/ta/index.html index cffe467..bdb707e 100644 --- a/ta/index.html +++ b/ta/index.html @@ -222,39 +222,11 @@

    Marked Responses

    - -
    - - -

    -
    -
    - - - - -
    -
    Virtual Checker Banner diff --git a/ta/questions.html b/ta/questions.html index 9ff72f1..175ed84 100644 --- a/ta/questions.html +++ b/ta/questions.html @@ -155,39 +155,11 @@

    Questions

    - -
    - - -

    -
    -
    - - - - -
    -
    Virtual Checker Banner