diff --git a/src/js/commandline-lists.js b/src/js/commandline-lists.js index 42957c7ac..a07256def 100644 --- a/src/js/commandline-lists.js +++ b/src/js/commandline-lists.js @@ -614,13 +614,6 @@ let commandsPaceCaret = { UpdateConfig.setPaceCaret("average"); }, }, - { - id: "setPaceCaretRepeat", - display: "repeat", - exec: () => { - UpdateConfig.setPaceCaret("repeat"); - }, - }, { id: "setPaceCaretCustom", display: "custom...", @@ -633,6 +626,7 @@ let commandsPaceCaret = { ], }; + let commandsMinWpm = { title: "Change min wpm mode...", list: [ @@ -1669,6 +1663,13 @@ export let defaultCommands = { Commandline.show(); }, }, + { + id: "toggleRepeatedPace", + display: "Toggle repeated pace", + exec: () => { + UpdateConfig.toggleRepeatedPace(); + }, + }, { id: "changeTimerStyle", display: "Change timer/progress style...", diff --git a/src/js/config.js b/src/js/config.js index e515e57d3..3b8e76247 100644 --- a/src/js/config.js +++ b/src/js/config.js @@ -99,6 +99,7 @@ let defaultConfig = { showOutOfFocusWarning: true, paceCaret: "off", paceCaretCustomSpeed: 100, + repeatedPace: true, pageWidth: "100", chartAccuracy: true, chartStyle: "line", @@ -502,6 +503,24 @@ export function setPaceCaretCustomSpeed(val, nosave) { if (!nosave) saveToLocalStorage(); } +//repeated pace +export function toggleRepeatedPace() { + let pace = !config.repeatedPace; + if (pace == undefined) { + pace = true; + } + config.repeatedPace = pace; + saveToLocalStorage(); +} + +export function setRepeatedPace(pace, nosave) { + if (pace == undefined) { + pace = true; + } + config.repeatedPace = pace; + if (!nosave) saveToLocalStorage(); +} + //min wpm export function setMinWpm(minwpm, nosave) { if (minwpm == undefined) { @@ -1516,6 +1535,7 @@ export function apply(configObj) { setShowOutOfFocusWarning(configObj.showOutOfFocusWarning, true); setPaceCaret(configObj.paceCaret, true); setPaceCaretCustomSpeed(configObj.paceCaretCustomSpeed, true); + setRepeatedPace(configObj.repeatedPace, true); setPageWidth(configObj.pageWidth, true); setChartAccuracy(configObj.chartAccuracy, true); setChartStyle(configObj.chartStyle, true); diff --git a/src/js/settings.js b/src/js/settings.js index ee53a9368..8ae870538 100644 --- a/src/js/settings.js +++ b/src/js/settings.js @@ -193,6 +193,10 @@ async function initGroups() { } } ); + groups.repeatedPace = new SettingsGroup( + "repeatedPace", + UpdateConfig.setRepeatedPace + ); groups.minWpm = new SettingsGroup("minWpm", UpdateConfig.setMinWpm, () => { if (Config.minWpm === "custom") { $(".pageSettings .section.minWpm input.customMinWpmSpeed").removeClass( diff --git a/src/js/test/pace-caret.js b/src/js/test/pace-caret.js index 43b42a03f..d7684a4a7 100644 --- a/src/js/test/pace-caret.js +++ b/src/js/test/pace-caret.js @@ -6,10 +6,7 @@ import * as DB from "./db"; export let settings = null; function resetCaretPosition() { - if ( - Config.paceCaret !== "off" && - (Config.paceCaret !== "repeat" || TestLogic.isPaceRepeat) - ) + if (Config.paceCaret === "off" && !TestLogic.isPaceRepeat) return; if (!$("#paceCaret").hasClass("hidden")) { $("#paceCaret").addClass("hidden"); @@ -73,7 +70,7 @@ export async function init() { console.log("avg pace " + wpm); } else if (Config.paceCaret === "custom") { wpm = Config.paceCaretCustomSpeed; - } else if (Config.paceCaret === "repeat" && Repeat) { + } else if (TestLogic.isPaceRepeat == true) { wpm = TestLogic.lastTestWpm; } if (wpm < 1 || wpm == false || wpm == undefined || Number.isNaN(wpm)) { diff --git a/src/js/test/test-logic.js b/src/js/test/test-logic.js index f8ff75c34..0d1a32cf2 100644 --- a/src/js/test/test-logic.js +++ b/src/js/test/test-logic.js @@ -343,8 +343,8 @@ export function startTest() { try { if ( - Config.paceCaret !== "off" && - (Config.paceCaret !== "repeat" || isPaceRepeat) + Config.paceCaret !== "off" || + (Config.repeatedPace && isPaceRepeat) ) PaceCaret.start(); } catch (e) {} diff --git a/src/js/test/test-ui.js b/src/js/test/test-ui.js index 905a56e18..ba22f5e10 100644 --- a/src/js/test/test-ui.js +++ b/src/js/test/test-ui.js @@ -492,8 +492,8 @@ export function updateModesNotice() { } if ( - Config.paceCaret !== "off" && - (Config.paceCaret !== "repeat" || TestLogic.isPaceRepeat) + Config.paceCaret !== "off" || + (Config.repeatedPace && TestLogic.isPaceRepeat) ) { let speed = ""; try { diff --git a/static/index.html b/static/index.html index a345ea6a4..324dc3049 100644 --- a/static/index.html +++ b/static/index.html @@ -2703,6 +2703,20 @@ /> +
+

repeated pace

+
+ When repeating a test, a pace caret will automatically be enabled for one test set to match the speed of your previous test. It does not override the pace caret settings if it's already enabled. +
+
+
+ off +
+
+ on +
+
+

pace caret style