Commit 9f6d724b authored by Jakob Moser's avatar Jakob Moser
Browse files

Add global variable for current test

parent aad0114f
Loading
Loading
Loading
Loading
+8 −6
Changes for static/js/yalikejazz.mjs: 8 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -3,6 +3,8 @@ import { pooltest } from "./exercises.mjs"
import { getHandInToken } from "./snakeoil.mjs"
import { createExerciseCard, displayAsSolved, displayAsNonCurrent, displayAsCurrent } from "./exercises.cards.mjs"

let currentTest = pooltest

/**
 * Create a DOM card for the given exercise, displays is as solved if solved and inits event listeners
 * @param {Exercise} exercise The exercise
@@ -27,7 +29,7 @@ function createAndInitExerciseCard(exercise) {
 * meaning that description and action buttons are not visible).
 */
function initExerciseList() {
    document.querySelector("#exercises").append(...pooltest.exercises.map(createAndInitExerciseCard))
    document.querySelector("#exercises").append(...currentTest.exercises.map(createAndInitExerciseCard))
}

/**
@@ -45,7 +47,7 @@ function startExercise(exercise) {
                currentState.markAsSolved(exercise.index)
                displayAsSolved(cardEl)

                const nextExercise = pooltest.getNextUnsolvedExercise(currentState)
                const nextExercise = currentTest.getNextUnsolvedExercise(currentState)

                if (nextExercise === null) {
                    alert("Du hast den Pooltest erfolgreich abgeschlossen! Du kannst jetzt abgeben :)")
@@ -92,9 +94,9 @@ function initActionLinks() {
}

export function main() {
    document.querySelector("#testName").textContent = pooltest.name
    document.querySelector("#exerciseCnt").textContent = pooltest.exercises.length
    document.title = `${pooltest.name} · ${document.title}`
    document.querySelector("#testName").textContent = currentTest.name
    document.querySelector("#exerciseCnt").textContent = currentTest.exercises.length
    document.title = `${currentTest.name} · ${document.title}`
    if (currentState.firstStart) {
        // Show welcome message
        document.body.classList.add("overlay-shown")
@@ -104,7 +106,7 @@ export function main() {
    initActionLinks()

    // If there is no current exercise, start with the first one.
    startExercise(pooltest.exercises[currentState.exerciseIndex || 0])
    startExercise(currentTest.exercises[currentState.exerciseIndex || 0])
}

window.onload = main