Compare commits

...

2 Commits

Author SHA1 Message Date
Neale Pickett 259ad59755 Fix bug with solved puzzle tracking 2024-04-17 17:17:58 -06:00
Neale Pickett 91ab94dade Document changes 2024-04-17 11:43:02 -06:00
6 changed files with 51 additions and 18 deletions

View File

@ -4,6 +4,35 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [v4.6.1] - 2024-04-17
### Changed
- Fixed bug with solved puzzle tracking when config.json cannot be loaded.
## [v4.6.0] - 2024-04-17
### Changed
- Mothd now correctly handles using the current directory for a path.
For instance, `-puzzles .`
- Theme configuration has a new structure:
old theme config files need to be modified
- Theme now omits the qix animation in the background
if the user has configured the browser to reduce motion.
This should help people with vestibular motion disorders,
or people who are annoyed by the animation.
- Theme colors are now specified with CSS variables,
making the theme (hopefully) easier to re-color.
### Added
- Theme: brought back integrated Python IDE,
with updated versions of CodeJar and Prism.js.
These depend on a CDN, but if it cannot be reached,
there is a graceful fallback.
- Theme (nearly) instantly updates the list of open puzzles
when a puzzle is solved.
Users should no longer need to refresh the index after solving a puzzle.
- Theme fires confetti 🎊 when a puzzle is answered correctly.
This requires a CDN; if unreachable, everything still works.
- Theme closes the tab a few seconds after a puzzle is answered
correctly.
## [v4.5.0] - 2024-01-19
### Changed

View File

@ -130,7 +130,7 @@ Both came with the following license:
Go Fonts
=======
-------
The Go fonts were obtained from
https://go.googlesource.com/image

View File

@ -48,7 +48,7 @@ function WhenDOMLoaded(cb) {
* @param {String} s
* @returns {Boolean}
*/
function Truthy(s) {
function StringTruthy(s) {
switch (s.toLowerCase()) {
case "disabled":
case "no":
@ -66,13 +66,20 @@ function Truthy(s) {
* @returns {Promise.<Object>}
*/
async function Config() {
let resp = await fetch(
new URL("config.json", BaseURL),
{
cache: "no-cache"
},
)
return resp.json()
let obj = {}
try {
let resp = await fetch(
new URL("configg.json", BaseURL),
{
cache: "no-cache"
},
)
obj = await resp.json()
}
catch(err) {
obj = {}
}
return obj
}
export {
@ -83,6 +90,6 @@ export {
BaseURL,
Toast,
WhenDOMLoaded,
Truthy,
StringTruthy,
Config,
}

View File

@ -29,7 +29,7 @@
Solved puzzle tracking: <b>disabled</b>.
</p>
<p>
Your team's Incident Coordinator can help coordinate team activity.
To avoid duplication of work, your team should coordinate.
</p>
</div>

View File

@ -92,8 +92,10 @@ class App {
// Update elements with data-track-solved
for (let e of document.querySelectorAll("[data-track-solved]")) {
// Only display if data-track-solved is the same as config.trackSolved
e.classList.toggle("hidden", common.Truthy(e.dataset.trackSolved) != this.config.PuzzleList?.TrackSolved)
// Only hide if data-track-solved is different than config.PuzzleList.TrackSolved
let tracking = this.config.PuzzleList?.TrackSolved || false
let displayIf = common.StringTruthy(e.dataset.trackSolved)
e.classList.toggle("hidden", tracking != displayIf)
}
for (let e of document.querySelectorAll(".login")) {

View File

@ -3,11 +3,6 @@
src: url("fonts/Go-Regular.ttf");
}
@font-face {
font-family: "Go-Mono";
src: url("fonts/Go-Mono.ttf");
}
/** Workspace
*
* Tools for this puzzle: shows up in content.