Loading static/js/util.mjs +13 −0 Original line number Diff line number Diff line Loading @@ -44,3 +44,16 @@ export async function waitFor(check) { } }) } /** * @param {HTMLElement} el An element * @param {string} selector A selector * @returns The first parent element of el matching the selector */ export function findParent(el, selector) { let parent = el.parentElement while(!parent?.matches(selector)) { parent = parent.parentElement } return parent } static/js/yalikejazz.mjs +4 −4 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ import * as tests from "./exercises.mjs" import { createExerciseCard, displayAsSolved, displayAsNonCurrent, displayAsCurrent, displayAsVerifying, displayAsNonVerifying, displayAsUnusuallyLongVerifying } from "./exercises.cards.mjs" import { Exercise } from "./exercises.api.mjs" import { isVmLoading, setAutoFocusEnabled } from "./jslinux.api.mjs" import { waitFor } from "./util.mjs" import { findParent, waitFor } from "./util.mjs" const testId = new URLSearchParams(location.search).get("id") const currentTest = tests[testId] Loading Loading @@ -105,8 +105,8 @@ function initActionLinks() { setDialogShown("welcome-dialog", false) currentTest.markWelcomeAsRead(currentState) }, "continue": function () { setDialogShown("welcome-dialog", false) "close": function () { setDialogShown(findParent(el, ".dialog").id, false) }, "complete": function () { setDialogShown("hand-in-dialog", false) Loading @@ -114,7 +114,7 @@ function initActionLinks() { }, "welcome-again": function () { document.querySelector("#welcome-dialog [data-action='begin']").style.display = "none" document.querySelector("#welcome-dialog [data-action='continue']").style.display = "block" document.querySelector("#welcome-dialog [data-action='close']").style.display = "block" setDialogShown("welcome-dialog", true) }, "reset": function () { Loading static/test.html +1 −1 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ <div class="message" id="welcome"></div> <div class="actions"> <button class="primary big" data-action="begin">Los geht's!</button> <button class="big" data-action="continue">Weiter geht's :)</button> <button class="big" data-action="close">Weiter geht's :)</button> </div> </div> <div class="dialog" id="hand-in-dialog"> Loading Loading
static/js/util.mjs +13 −0 Original line number Diff line number Diff line Loading @@ -44,3 +44,16 @@ export async function waitFor(check) { } }) } /** * @param {HTMLElement} el An element * @param {string} selector A selector * @returns The first parent element of el matching the selector */ export function findParent(el, selector) { let parent = el.parentElement while(!parent?.matches(selector)) { parent = parent.parentElement } return parent }
static/js/yalikejazz.mjs +4 −4 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ import * as tests from "./exercises.mjs" import { createExerciseCard, displayAsSolved, displayAsNonCurrent, displayAsCurrent, displayAsVerifying, displayAsNonVerifying, displayAsUnusuallyLongVerifying } from "./exercises.cards.mjs" import { Exercise } from "./exercises.api.mjs" import { isVmLoading, setAutoFocusEnabled } from "./jslinux.api.mjs" import { waitFor } from "./util.mjs" import { findParent, waitFor } from "./util.mjs" const testId = new URLSearchParams(location.search).get("id") const currentTest = tests[testId] Loading Loading @@ -105,8 +105,8 @@ function initActionLinks() { setDialogShown("welcome-dialog", false) currentTest.markWelcomeAsRead(currentState) }, "continue": function () { setDialogShown("welcome-dialog", false) "close": function () { setDialogShown(findParent(el, ".dialog").id, false) }, "complete": function () { setDialogShown("hand-in-dialog", false) Loading @@ -114,7 +114,7 @@ function initActionLinks() { }, "welcome-again": function () { document.querySelector("#welcome-dialog [data-action='begin']").style.display = "none" document.querySelector("#welcome-dialog [data-action='continue']").style.display = "block" document.querySelector("#welcome-dialog [data-action='close']").style.display = "block" setDialogShown("welcome-dialog", true) }, "reset": function () { Loading
static/test.html +1 −1 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ <div class="message" id="welcome"></div> <div class="actions"> <button class="primary big" data-action="begin">Los geht's!</button> <button class="big" data-action="continue">Weiter geht's :)</button> <button class="big" data-action="close">Weiter geht's :)</button> </div> </div> <div class="dialog" id="hand-in-dialog"> Loading