From 44711dab791dadcabe4489d38ce7061b2ac2ae12 Mon Sep 17 00:00:00 2001 From: Jack Date: Sun, 26 Jul 2020 01:19:10 +0100 Subject: [PATCH] changed confidence mode to support multiple options --- public/index.html | 34 +++++++++++----------- public/js/commandline.js | 43 +++++++++++++++++++++++----- public/js/script.js | 30 +++++++++++++++++--- public/js/settings.js | 61 ++++++++++++++++++++++++++++------------ public/js/userconfig.js | 41 ++++++++++----------------- 5 files changed, 138 insertions(+), 71 deletions(-) diff --git a/public/index.html b/public/index.html index 6a4db4f26..6d9fc258c 100644 --- a/public/index.html +++ b/public/index.html @@ -7,7 +7,7 @@ Monkey Type - + @@ -812,12 +812,14 @@
off
-
-

max confidence

-
When enabled, you will not be able to go back to previous words to fix mistakes.
+
+

confidence mode

+
When enabled, you will not be able to go back to previous words to fix mistakes. When turned + up to the max, you won't be able to backspace at all.
-
on
-
off
+
max
+
on
+
off
@@ -1370,17 +1372,17 @@ - + - - - - - - - - - + + + + + + + + + \ No newline at end of file diff --git a/public/js/commandline.js b/public/js/commandline.js index 727965194..707c1741a 100644 --- a/public/js/commandline.js +++ b/public/js/commandline.js @@ -51,6 +51,15 @@ let commands = { showCommandLine(); }, }, + { + id: "changeConfidenceMode", + display: "Change confidence mode...", + subgroup: true, + exec: () => { + currentCommands.push(commandsConfidenceMode); + showCommandLine(); + }, + }, { id: "toggleSmoothCaret", display: "Toggle smooth caret", @@ -95,13 +104,6 @@ let commands = { toggleFreedomMode(); }, }, - { - id: "toggleMaxConfidence", - display: "Toggle max confidence", - exec: () => { - toggleMaxConfidence(); - }, - }, { id: "toggleBlindMode", display: "Toggle blind mode", @@ -511,6 +513,33 @@ let commandsTimeConfig = { ], }; +let commandsConfidenceMode = { + title: "Change confidence mode...", + list: [ + { + id: "changeConfidenceModeOff", + display: "off", + exec: () => { + setConfidenceMode("off"); + }, + }, + { + id: "changeConfidenceModeOn", + display: "on", + exec: () => { + setConfidenceMode("on"); + }, + }, + { + id: "changeConfidenceModeMax", + display: "max", + exec: () => { + setConfidenceMode("max"); + }, + }, + ], +}; + let commandsFontSize = { title: "Change font size...", list: [ diff --git a/public/js/script.js b/public/js/script.js index 91e8ca960..d41eec4b1 100644 --- a/public/js/script.js +++ b/public/js/script.js @@ -2173,6 +2173,29 @@ function updateTestModesNotice() { ); } + if (config.confidenceMode === "on") { + $(".pageTest #testModesNotice").append( + `
confidence
` + ); + } + if (config.confidenceMode === "max") { + $(".pageTest #testModesNotice").append( + `
max confidence
` + ); + } + + if (config.stopOnError) { + $(".pageTest #testModesNotice").append( + `
stop on error
` + ); + } + + if (config.layout !== "default") { + $(".pageTest #testModesNotice").append( + `
${config.layout}
` + ); + } + tagsString = ""; // $.each($('.pageSettings .section.tags .tagsList .tag'), (index, tag) => { // if($(tag).children('.active').attr('active') === 'true'){ @@ -2753,7 +2776,8 @@ $(document).keydown((event) => { ) { return; } else { - if (config.maxConfidence) return; + if (config.confidenceMode === "on" || config.confidenceMode === "max") + return; if (event["ctrlKey"] || event["altKey"]) { currentInput = ""; inputHistory.pop(); @@ -2766,9 +2790,7 @@ $(document).keydown((event) => { compareInput(!config.blindMode); } } else { - // if ($($(".word")[currentWordIndex - 1]).hasClass("hidden")) { - // return; - // } + if (config.confidenceMode === "max") return; if (event["ctrlKey"]) { currentInput = ""; } else { diff --git a/public/js/settings.js b/public/js/settings.js index 2c14e94aa..8057b1b34 100644 --- a/public/js/settings.js +++ b/public/js/settings.js @@ -47,7 +47,6 @@ function updateSettingsPage() { setSettingsButton("flipTestColors", config.flipTestColors); setSettingsButton("discordDot", config.showDiscordDot); setSettingsButton("colorfulMode", config.colorfulMode); - setSettingsButton("maxConfidence", config.maxConfidence); setSettingsButton("randomTheme", config.randomTheme); setSettingsButton("stopOnError", config.stopOnError); setSettingsButton("showAllLines", config.showAllLines); @@ -63,6 +62,7 @@ function updateSettingsPage() { setActiveTimerOpacityButton(); setActiveThemeTab(); setCustomThemeInputs(); + setActiveConfidenceModeButton(); updateDiscordSettingsSection(); @@ -395,6 +395,20 @@ function updateDiscordSettingsSection() { } } +function setActiveConfidenceModeButton() { + let cm = config.confidenceMode; + $(".pageSettings .section.confidenceMode .buttons .button").removeClass( + "active" + ); + $( + `.pageSettings .section.confidenceMode .buttons .button[confidenceMode='${cm}']` + ).addClass("active"); + if (cm !== "off") { + config.freedomMode = false; + setSettingsButton("freedomMode", config.freedomMode); + } +} + //smooth caret $(".pageSettings .section.smoothCaret .buttons .button.on").click((e) => { setSmoothCaret(true); @@ -453,31 +467,42 @@ $(".pageSettings .section.freedomMode .buttons .button.on").click((e) => { saveConfigToCookie(); // showNotification('Freedom mode on', 1000); setSettingsButton("freedomMode", config.freedomMode); - setSettingsButton("maxConfidence", config.maxConfidence); + config.confidenceMode = "off"; + setActiveConfidenceModeButton(); }); $(".pageSettings .section.freedomMode .buttons .button.off").click((e) => { setFreedomMode(false); saveConfigToCookie(); // showNotification('Freedom mode off', 1000); setSettingsButton("freedomMode", config.freedomMode); - setSettingsButton("maxConfidence", config.maxConfidence); }); -//max confidence -$(".pageSettings .section.maxConfidence .buttons .button.on").click((e) => { - setMaxConfidence(true); - saveConfigToCookie(); - // showNotification('Max confidence on', 1000); - setSettingsButton("freedomMode", config.freedomMode); - setSettingsButton("maxConfidence", config.maxConfidence); -}); -$(".pageSettings .section.maxConfidence .buttons .button.off").click((e) => { - setMaxConfidence(false); - saveConfigToCookie(); - // showNotification('Max confidence off', 1000); - setSettingsButton("freedomMode", config.freedomMode); - setSettingsButton("maxConfidence", config.maxConfidence); -}); +// //max confidence +// $(".pageSettings .section.maxConfidence .buttons .button.on").click((e) => { +// setMaxConfidence(true); +// saveConfigToCookie(); +// // showNotification('Max confidence on', 1000); +// setSettingsButton("freedomMode", config.freedomMode); +// setSettingsButton("maxConfidence", config.maxConfidence); +// }); +// $(".pageSettings .section.maxConfidence .buttons .button.off").click((e) => { +// setMaxConfidence(false); +// saveConfigToCookie(); +// // showNotification('Max confidence off', 1000); +// setSettingsButton("freedomMode", config.freedomMode); +// setSettingsButton("maxConfidence", config.maxConfidence); +// }); + +//confidence +$(document).on( + "click", + ".pageSettings .section.confidenceMode .button", + (e) => { + let confidence = $(e.currentTarget).attr("confidenceMode"); + setConfidenceMode(confidence); + setActiveConfidenceModeButton(); + } +); //keytips $(".pageSettings .section.keyTips .buttons .button.on").click((e) => { diff --git a/public/js/userconfig.js b/public/js/userconfig.js index 3b59315ff..1a72dbb4d 100644 --- a/public/js/userconfig.js +++ b/public/js/userconfig.js @@ -32,7 +32,7 @@ let defaultConfig = { flipTestColors: false, layout: "default", showDiscordDot: true, - maxConfidence: false, + confidenceMode: "off", timerStyle: "bar", colorfulMode: true, randomTheme: false, @@ -132,7 +132,7 @@ function applyConfig(configObj) { setFlipTestColors(configObj.flipTestColors, true); setDiscordDot(configObj.hideDiscordDot, true); setColorfulMode(configObj.colorfulMode, true); - setMaxConfidence(configObj.maxConfidence, true); + setConfidenceMode(configObj.confidenceMode, true); setTimerStyle(configObj.timerStyle, true); setTimerColor(configObj.timerColor, true); setTimerOpacity(configObj.timerOpacity, true); @@ -239,6 +239,7 @@ function toggleStopOnError() { soe = false; } config.stopOnError = soe; + updateTestModesNotice(); saveConfigToCookie(); } @@ -247,6 +248,7 @@ function setStopOnError(soe, nosave) { soe = false; } config.stopOnError = soe; + updateTestModesNotice(); if (!nosave) saveConfigToCookie(); } @@ -491,43 +493,29 @@ function setFreedomMode(freedom, nosave) { freedom = false; } config.freedomMode = freedom; - if (config.freedomMode && config.maxConfidence) { - config.maxConfidence = false; + if (config.freedomMode && config.confidenceMode !== "off") { + config.confidenceMode = "off"; } if (!nosave) saveConfigToCookie(); } function toggleFreedomMode() { config.freedomMode = !config.freedomMode; - if (config.freedomMode && config.maxConfidence) { - config.maxConfidence = false; + if (config.freedomMode && config.confidenceMode !== "off") { + config.confidenceMode = false; } saveConfigToCookie(); } -//max confidence -function toggleMaxConfidence() { - // console.log(config.maxConfidence) - mc = !config.maxConfidence; - if (mc == undefined) { - mc = false; +function setConfidenceMode(cm, nosave) { + if (cm == undefined) { + cm = "off"; } - config.maxConfidence = mc; - if (config.freedomMode && config.maxConfidence) { - config.freedomMode = false; - } - // console.log(config.maxConfidence); - saveConfigToCookie(); -} - -function setMaxConfidence(mc, nosave) { - if (mc == undefined) { - mc = false; - } - config.maxConfidence = mc; - if (config.freedomMode && config.maxConfidence) { + config.confidenceMode = cm; + if (config.freedomMode && config.confidenceMode !== "off") { config.freedomMode = false; } + updateTestModesNotice(); if (!nosave) saveConfigToCookie(); } @@ -681,6 +669,7 @@ function changeLayout(layout, nosave) { layout = "qwerty"; } config.layout = layout; + updateTestModesNotice(); if (!nosave) saveConfigToCookie(); }