refactored settings page

This commit is contained in:
Jack 2020-08-04 00:46:04 +01:00
parent 0ac761c54c
commit e3fabe57dc
6 changed files with 239 additions and 606 deletions

View file

@ -1844,8 +1844,8 @@ key {
}
&.themes,
&.languages,
&.layouts,
&.language,
&.layout,
&.keymapLayout,
&.fontFamily,
&.funbox {

View file

@ -1123,12 +1123,12 @@
</div>
</div>
</div>
<div class="section layouts">
<div class="section layout">
<h1>layout override</h1>
<div class="buttons">
</div>
</div>
<div class="section languages">
<div class="section language">
<h1>language</h1>
<div class="buttons">
</div>
@ -1158,10 +1158,10 @@
<h1>caret style</h1>
<div class="text">Change the style of the caret during the test.</div>
<div class="buttons">
<div class="button" caret="default" tabindex="0" onclick="this.blur();">|</div>
<div class="button" caret="block" tabindex="0" onclick="this.blur();"></div>
<div class="button" caret="outline" tabindex="0" onclick="this.blur();"></div>
<div class="button" caret="underline" tabindex="0" onclick="this.blur();">_</div>
<div class="button" caretStyle="default" tabindex="0" onclick="this.blur();">|</div>
<div class="button" caretStyle="block" tabindex="0" onclick="this.blur();"></div>
<div class="button" caretStyle="outline" tabindex="0" onclick="this.blur();"></div>
<div class="button" caretStyle="underline" tabindex="0" onclick="this.blur();">_</div>
</div>
</div>
<div class="section timerStyle" section="">
@ -1356,7 +1356,7 @@
hide elements
<i class="fas fa-chevron-down"></i></div>
<div class="settingsGroup hideElements">
<div class="section liveWpm">
<div class="section showLiveWpm">
<h1>live wpm</h1>
<div class="text">Displays a live WPM speed during the test. Updates once every second.</div>
<div class="buttons">
@ -1364,7 +1364,7 @@
<div class="button on" tabindex="0" onclick="this.blur();">show</div>
</div>
</div>
<div class="section timerBar">
<div class="section showTimerProgress">
<h1>timer/progress</h1>
<div class="text">Displays a live timer for timed tests and progress for words/custom tests.</div>
<div class="buttons">
@ -1372,7 +1372,7 @@
<div class="button on" tabindex="0" onclick="this.blur();">show</div>
</div>
</div>
<div class="section keyTips">
<div class="section showKeyTips">
<h1>key tips</h1>
<div class="text">Shows the keybind tips at the bottom of the page.</div>
<div class="buttons">
@ -1380,14 +1380,6 @@
<div class="button on" tabindex="0" onclick="this.blur();">show</div>
</div>
</div>
<div class="section discordDot">
<h1>discord dot</h1>
<div class="text">Shows the notification dot on the Discord icon.</div>
<div class="buttons">
<div class="button off" tabindex="0" onclick="this.blur();">hide</div>
<div class="button on" tabindex="0" onclick="this.blur();">show</div>
</div>
</div>
</div>
</div>

View file

@ -78,7 +78,7 @@ let commands = {
id: "toggleShowLiveWpm",
display: "Toggle live wpm display",
exec: () => {
config.showLiveWpm = !config.showLiveWpm;
toggleShowLiveWpm();
saveConfigToCookie();
},
},
@ -86,7 +86,7 @@ let commands = {
id: "toggleTimerBar",
display: "Toggle timer display",
exec: () => {
config.showTimerBar = !config.showTimerBar;
toggleShowTimerProgress();
saveConfigToCookie();
},
},

View file

@ -832,7 +832,7 @@ function highlightBadWord(index, showError) {
}
function showTimer() {
let op = config.showTimerBar ? config.timerOpacity : 0;
let op = config.showTimerProgress ? config.timerOpacity : 0;
if (config.timerStyle === "bar") {
// let op = 0.25;
// if (
@ -933,7 +933,7 @@ function restartTimer() {
}
function updateTimer() {
if (!config.showTimerBar) return;
if (!config.showTimerProgress) return;
if (config.mode === "time") {
if (config.timerStyle === "bar") {
let percent = 100 - ((time + 1) / config.time) * 100;

View file

@ -1,3 +1,166 @@
class SettingsGroup {
constructor(
configName,
toggleFunction,
setCallback = null,
updateCallback = null
) {
this.configName = configName;
this.configValue = config[configName];
if (this.configValue === true || this.configValue === false) {
this.onOff = true;
} else {
this.onOff = false;
}
this.toggleFunction = toggleFunction;
this.setCallback = setCallback;
this.updateCallback = updateCallback;
this.updateButton();
$(document).on(
"click",
`.pageSettings .section.${this.configName} .button`,
(e) => {
if (this.onOff) {
if ($(e.currentTarget).hasClass("on")) {
this.toggleFunction(true);
} else {
this.toggleFunction(false);
}
this.updateButton();
if (this.setCallback !== null) this.setCallback();
} else {
let value = $(e.currentTarget).attr(configName);
let params = $(e.currentTarget).attr("params");
if (params === undefined) {
this.toggleFunction(value);
} else {
this.toggleFunction(value, ...params);
}
this.updateButton();
if (this.setCallback !== null) this.setCallback();
}
}
);
}
updateButton() {
this.configValue = config[this.configName];
$(`.pageSettings .section.${this.configName} .button`).removeClass(
"active"
);
if (this.onOff) {
let onoffstring;
if (this.configValue) {
onoffstring = "on";
} else {
onoffstring = "off";
}
$(
`.pageSettings .section.${this.configName} .buttons .button.${onoffstring}`
).addClass("active");
} else {
$(
`.pageSettings .section.${this.configName} .button[${this.configName}='${this.configValue}']`
).addClass("active");
}
if (this.updateCallback !== null) this.updateCallback();
}
}
let settingsGroups = {};
settingsGroups.smoothCaret = new SettingsGroup("smoothCaret", setSmoothCaret);
settingsGroups.difficulty = new SettingsGroup("difficulty", setDifficulty);
settingsGroups.quickTab = new SettingsGroup("quickTab", setQuickTabMode);
settingsGroups.showLiveWpm = new SettingsGroup(
"showLiveWpm",
setShowLiveWpm,
() => {
settingsGroups.keymapMode.updateButton();
}
);
settingsGroups.showTimerProgress = new SettingsGroup(
"showTimerProgress",
setShowTimerProgress
);
settingsGroups.keymapMode = new SettingsGroup(
"keymapMode",
changeKeymapMode,
() => {
settingsGroups.showLiveWpm.updateButton();
},
() => {
if (config.keymapMode === "off") {
$(".pageSettings .section.keymapLayout").addClass("hidden");
} else {
$(".pageSettings .section.keymapLayout").removeClass("hidden");
}
}
);
settingsGroups.keymapLayout = new SettingsGroup(
"keymapLayout",
changeKeymapLayout
);
settingsGroups.quickTab = new SettingsGroup(
"showKeyTips",
setKeyTips,
null,
() => {
if (config.showKeyTips) {
$(".pageSettings .tip").removeClass("hidden");
} else {
$(".pageSettings .tip").addClass("hidden");
}
}
);
settingsGroups.freedomMode = new SettingsGroup(
"freedomMode",
setFreedomMode,
() => {
settingsGroups.confidenceMode.updateButton();
}
);
settingsGroups.confidenceMode = new SettingsGroup(
"confidenceMode",
setConfidenceMode,
() => {
settingsGroups.freedomMode.updateButton();
}
);
settingsGroups.blindMode = new SettingsGroup("blindMode", setBlindMode);
settingsGroups.quickEnd = new SettingsGroup("quickEnd", setQuickEnd);
settingsGroups.flipTestColors = new SettingsGroup(
"flipTestColors",
setFlipTestColors
);
settingsGroups.colorfulMode = new SettingsGroup(
"colorfulMode",
setColorfulMode
);
settingsGroups.randomTheme = new SettingsGroup("randomTheme", setRandomTheme);
settingsGroups.stopOnError = new SettingsGroup("stopOnError", setStopOnError);
settingsGroups.showAllLines = new SettingsGroup(
"showAllLines",
setShowAllLines
);
settingsGroups.smoothLineScroll = new SettingsGroup(
"smoothLineScroll",
setSmoothLineScroll
);
settingsGroups.layout = new SettingsGroup("layout", changeLayout);
settingsGroups.language = new SettingsGroup("language", changeLanguage);
settingsGroups.fontSize = new SettingsGroup("fontSize", changeFontSize);
settingsGroups.caretStyle = new SettingsGroup("caretStyle", setCaretStyle);
settingsGroups.timerStyle = new SettingsGroup("timerStyle", setTimerStyle);
settingsGroups.timerOpacity = new SettingsGroup(
"timerOpacity",
setTimerOpacity
);
settingsGroups.timerColor = new SettingsGroup("timerColor", setTimerColor);
settingsGroups.fontFamily = new SettingsGroup("fontFamily", setFontFamily);
function updateSettingsPage() {
let themesEl = $(".pageSettings .section.themes .buttons").empty();
themesList.forEach((theme) => {
@ -8,7 +171,7 @@ function updateSettingsPage() {
);
});
let langEl = $(".pageSettings .section.languages .buttons").empty();
let langEl = $(".pageSettings .section.language .buttons").empty();
Object.keys(words).forEach((language) => {
if (language === "english_10k") return;
langEl.append(
@ -24,7 +187,7 @@ function updateSettingsPage() {
}
});
let layoutEl = $(".pageSettings .section.layouts .buttons").empty();
let layoutEl = $(".pageSettings .section.layout .buttons").empty();
Object.keys(layouts).forEach((layout) => {
layoutEl.append(
`<div class="layout button" layout='${layout}'>${layout.replace(
@ -79,49 +242,16 @@ function updateSettingsPage() {
);
});
Object.keys(settingsGroups).forEach((group) => {
settingsGroups[group].updateButton();
});
refreshTagsSettingsSection();
setSettingsButton("smoothCaret", config.smoothCaret);
setSettingsButton("quickTab", config.quickTab);
setSettingsButton("liveWpm", config.showLiveWpm);
setSettingsButton("timerBar", config.showTimerBar);
setSettingsButton("keymap-toggle", config.keymap);
setSettingsButton("keyTips", config.showKeyTips);
setSettingsButton("freedomMode", config.freedomMode);
setSettingsButton("blindMode", config.blindMode);
setSettingsButton("quickEnd", config.quickEnd);
setSettingsButton("flipTestColors", config.flipTestColors);
setSettingsButton("discordDot", config.showDiscordDot);
setSettingsButton("colorfulMode", config.colorfulMode);
setSettingsButton("randomTheme", config.randomTheme);
setSettingsButton("stopOnError", config.stopOnError);
setSettingsButton("showAllLines", config.showAllLines);
setSettingsButton("smoothLineScroll", config.smoothLineScroll);
setActiveFunboxButton();
setActiveLayoutButton();
setActiveThemeButton();
setActiveLanguageButton();
setActiveFontSizeButton();
setActiveDifficultyButton();
setActiveCaretStyleButton();
setActiveTimerStyleButton();
setActiveTimerColorButton();
setActiveTimerOpacityButton();
setActiveThemeTab();
setCustomThemeInputs();
setActiveConfidenceModeButton();
setActiveFontFamilyButton();
setActiveKeymapModeButton();
setActiveKeymapLayoutButton();
updateDiscordSettingsSection();
if (config.showKeyTips) {
$(".pageSettings .tip").removeClass("hidden");
} else {
$(".pageSettings .tip").addClass("hidden");
}
}
function showCustomThemeShare() {
@ -197,29 +327,29 @@ function refreshTagsSettingsSection() {
dbSnapshot.tags.forEach((tag) => {
if (tag.active === true) {
tagsEl.append(`
<div class="tag" id="${tag.id}">
<div class="active" active="true">
<i class="fas fa-check-square"></i>
</div>
<div class="title">${tag.name}</div>
<div class="editButton"><i class="fas fa-pen"></i></div>
<div class="removeButton"><i class="fas fa-trash"></i></div>
</div>
<div class="tag" id="${tag.id}">
<div class="active" active="true">
<i class="fas fa-check-square"></i>
</div>
<div class="title">${tag.name}</div>
<div class="editButton"><i class="fas fa-pen"></i></div>
<div class="removeButton"><i class="fas fa-trash"></i></div>
</div>
`);
} else {
tagsEl.append(`
<div class="tag" id="${tag.id}">
<div class="active" active="false">
<i class="fas fa-square"></i>
</div>
<div class="title">${tag.name}</div>
<div class="editButton"><i class="fas fa-pen"></i></div>
<div class="removeButton"><i class="fas fa-trash"></i></div>
</div>
<div class="tag" id="${tag.id}">
<div class="active" active="false">
<i class="fas fa-square"></i>
</div>
<div class="title">${tag.name}</div>
<div class="editButton"><i class="fas fa-pen"></i></div>
<div class="removeButton"><i class="fas fa-trash"></i></div>
</div>
`);
}
});
@ -259,136 +389,7 @@ function setCustomThemeInputs() {
});
}
function setActiveKeymapModeButton() {
$(`.pageSettings .section.keymapMode .button`).removeClass("active");
$(
`.pageSettings .section.keymapMode .button[keymapMode="${config.keymapMode}"]`
).addClass("active");
if (config.keymapMode === "off") {
$(".pageSettings .section.keymapLayout").addClass("hidden");
} else {
$(".pageSettings .section.keymapLayout").removeClass("hidden");
}
}
function setActiveKeymapLayoutButton() {
$(`.pageSettings .section.keymapLayout .layout`).removeClass("active");
$(
`.pageSettings .section.keymapLayout .layout[layout=${config.keymapLayout}]`
).addClass("active");
}
function setActiveLayoutButton() {
$(`.pageSettings .section.layouts .layout`).removeClass("active");
$(`.pageSettings .section.layouts .layout[layout=${config.layout}]`).addClass(
"active"
);
}
function setActiveFontSizeButton() {
$(`.pageSettings .section.fontSize .buttons .button`).removeClass("active");
$(
`.pageSettings .section.fontSize .buttons .button[fontsize=` +
config.fontSize +
`]`
).addClass("active");
}
function setActiveDifficultyButton() {
$(`.pageSettings .section.difficulty .buttons .button`).removeClass("active");
$(
`.pageSettings .section.difficulty .buttons .button[difficulty=` +
config.difficulty +
`]`
).addClass("active");
}
function setActiveLanguageButton() {
$(`.pageSettings .section.languages .language`).removeClass("active");
$(
`.pageSettings .section.languages .language[language=${config.language}]`
).addClass("active");
}
function setActiveCaretStyleButton() {
$(`.pageSettings .section.caretStyle .buttons .button`).removeClass("active");
$(
`.pageSettings .section.caretStyle .buttons .button[caret=` +
config.caretStyle +
`]`
).addClass("active");
}
function setActiveTimerStyleButton() {
$(`.pageSettings .section.timerStyle .buttons .button`).removeClass("active");
$(
`.pageSettings .section.timerStyle .buttons .button[timer=` +
config.timerStyle +
`]`
).addClass("active");
}
function setActiveTimerColorButton() {
$(`.pageSettings .section.timerColor .buttons .button`).removeClass("active");
$(
`.pageSettings .section.timerColor .buttons .button[color=` +
config.timerColor +
`]`
).addClass("active");
}
function setActiveTimerOpacityButton() {
$(`.pageSettings .section.timerOpacity .buttons .button`).removeClass(
"active"
);
$(
`.pageSettings .section.timerOpacity .buttons .button[opacity="` +
config.timerOpacity +
`"]`
).addClass("active");
}
function setSettingsButton(buttonSection, tf) {
if (tf) {
$(
".pageSettings .section." + buttonSection + " .buttons .button.on"
).addClass("active");
$(
".pageSettings .section." + buttonSection + " .buttons .button.off"
).removeClass("active");
} else {
$(
".pageSettings .section." + buttonSection + " .buttons .button.off"
).addClass("active");
$(
".pageSettings .section." + buttonSection + " .buttons .button.on"
).removeClass("active");
}
}
function showActiveTags() {
// activeTags = [];
// tagsString = "";
// $.each($('.pageSettings .section.tags .tagsList .tag'), (index, tag) => {
// if($(tag).children('.active').attr('active') === 'true'){
// activeTags.push($(tag).attr('id'));
// tagsString += $(tag).children('.title').text() + ', ';
// }
// })
// updateTestModesNotice();
// if($(target).attr('active') === 'true'){
// $(target).attr('active','false');
// $(target).html('<i class="fas fa-square"></i>')
// }else{
// $(target).attr('active','true');
// $(target).html('<i class="fas fa-check-square"></i>')
// }
// $.each($('.pageSettings .section.tags .tagsList .tag'), (index, tag) => {
// let tagid = $(tag).attr('')
// })
dbSnapshot.tags.forEach((tag) => {
if (tag.active === true) {
$(
@ -472,348 +473,12 @@ 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);
}
}
function setActiveFontFamilyButton() {
let font = config.fontFamily;
$(".pageSettings .section.fontFamily .buttons .button").removeClass("active");
$(
`.pageSettings .section.fontFamily .buttons .button[fontFamily='${font}']`
).addClass("active");
}
//smooth caret
$(".pageSettings .section.smoothCaret .buttons .button.on").click((e) => {
setSmoothCaret(true);
// showNotification('Smooth caret on', 1000);
setSettingsButton("smoothCaret", config.smoothCaret);
});
$(".pageSettings .section.smoothCaret .buttons .button.off").click((e) => {
setSmoothCaret(false);
// showNotification('Smooth caret off', 1000);
setSettingsButton("smoothCaret", config.smoothCaret);
});
//smooth line
$(".pageSettings .section.smoothLineScroll .buttons .button.on").click((e) => {
setSmoothLineScroll(true);
// showNotification('Smooth caret on', 1000);
setSettingsButton("smoothLineScroll", config.smoothLineScroll);
});
$(".pageSettings .section.smoothLineScroll .buttons .button.off").click((e) => {
setSmoothLineScroll(false);
// showNotification('Smooth caret off', 1000);
setSettingsButton("smoothLineScroll", config.smoothLineScroll);
});
//quick tab
$(".pageSettings .section.quickTab .buttons .button.on").click((e) => {
setQuickTabMode(true);
// showNotification('Quick tab on', 1000);
setSettingsButton("quickTab", config.quickTab);
});
$(".pageSettings .section.quickTab .buttons .button.off").click((e) => {
setQuickTabMode(false);
// showNotification('Quick tab off', 1000);
setSettingsButton("quickTab", config.quickTab);
});
//live wpm
$(".pageSettings .section.liveWpm .buttons .button.on").click((e) => {
config.showLiveWpm = true;
saveConfigToCookie();
// showNotification('Live WPM on', 1000);
setSettingsButton("liveWpm", config.showLiveWpm);
});
$(".pageSettings .section.liveWpm .buttons .button.off").click((e) => {
config.showLiveWpm = false;
saveConfigToCookie();
// showNotification('Live WPM off', 1000);
setSettingsButton("liveWpm", config.showLiveWpm);
});
//timer bar
$(".pageSettings .section.timerBar .buttons .button.on").click((e) => {
config.showTimerBar = true;
saveConfigToCookie();
// showNotification('Timer bar on', 1000);
setSettingsButton("timerBar", config.showTimerBar);
});
$(".pageSettings .section.timerBar .buttons .button.off").click((e) => {
config.showTimerBar = false;
saveConfigToCookie();
// showNotification('Timer bar off', 1000);
setSettingsButton("timerBar", config.showTimerBar);
});
//keymap
$(document).on("click", ".pageSettings .section.keymapMode .button", (e) => {
let mode = $(e.currentTarget).attr("keymapMode");
changeKeymapMode(mode);
restartTest();
setActiveKeymapModeButton();
setSettingsButton("liveWpm", config.showLiveWpm);
});
//keymap layouts
$(document).on("click", ".pageSettings .section.keymapLayout .layout", (e) => {
let layout = $(e.currentTarget).attr("layout");
changeKeymapLayout(layout);
// showNotification('Keymap Layout changed', 1000);
restartTest();
setActiveKeymapLayoutButton();
});
//freedom mode
$(".pageSettings .section.freedomMode .buttons .button.on").click((e) => {
setFreedomMode(true);
saveConfigToCookie();
// showNotification('Freedom mode on', 1000);
setSettingsButton("freedomMode", config.freedomMode);
config.confidenceMode = "off";
setActiveConfidenceModeButton();
});
$(".pageSettings .section.freedomMode .buttons .button.off").click((e) => {
setFreedomMode(false);
saveConfigToCookie();
// showNotification('Freedom mode off', 1000);
setSettingsButton("freedomMode", config.freedomMode);
});
// //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) => {
setKeyTips(true);
// showNotification('Key tips on', 1000);
setSettingsButton("keyTips", config.showKeyTips);
if (config.showKeyTips) {
$(".pageSettings .tip").removeClass("hidden");
} else {
$(".pageSettings .tip").addClass("hidden");
}
});
$(".pageSettings .section.keyTips .buttons .button.off").click((e) => {
setKeyTips(false);
// showNotification('Key tips off', 1000);
setSettingsButton("keyTips", config.showKeyTips);
if (config.showKeyTips) {
$(".pageSettings .tip").removeClass("hidden");
} else {
$(".pageSettings .tip").addClass("hidden");
}
});
//keytips
$(".pageSettings .section.discordDot .buttons .button.on").click((e) => {
setDiscordDot(true);
setSettingsButton("discordDot", config.showDiscordDot);
});
$(".pageSettings .section.discordDot .buttons .button.off").click((e) => {
setDiscordDot(false);
setSettingsButton("discordDot", config.showDiscordDot);
});
//themes
// $(document).on("mouseover",".pageSettings .section.themes .theme", (e) => {
// let theme = $(e.currentTarget).attr('theme');
// previewTheme(theme);
// })
$(document).on("click", ".pageSettings .section.themes .theme", (e) => {
let theme = $(e.currentTarget).attr("theme");
setTheme(theme);
setActiveThemeButton();
});
// $(document).on("mouseleave",".pageSettings .section.themes", (e) => {
// setTheme(config.theme);
// })
//languages
$(document).on("click", ".pageSettings .section.languages .language", (e) => {
let language = $(e.currentTarget).attr("language");
changeLanguage(language);
// showNotification('Language changed', 1000);
restartTest();
setActiveLanguageButton();
});
//layouts
$(document).on("click", ".pageSettings .section.layouts .layout", (e) => {
console.log("clicked");
let layout = $(e.currentTarget).attr("layout");
changeLayout(layout);
// showNotification('Layout changed', 1000);
restartTest();
setActiveLayoutButton();
});
//fontsize
$(document).on("click", ".pageSettings .section.fontSize .button", (e) => {
let fontSize = $(e.currentTarget).attr("fontsize");
changeFontSize(fontSize);
// showNotification('Font size changed', 1000);
setActiveFontSizeButton();
});
//difficulty
$(document).on("click", ".pageSettings .section.difficulty .button", (e) => {
let difficulty = $(e.currentTarget).attr("difficulty");
setDifficulty(difficulty);
// showNotification('Difficulty changed', 1000);
setActiveDifficultyButton();
});
//caret style
$(document).on("click", ".pageSettings .section.caretStyle .button", (e) => {
let caretStyle = $(e.currentTarget).attr("caret");
setCaretStyle(caretStyle);
// showNotification('Caret style updated', 1000);
setActiveCaretStyleButton();
});
//timer style
$(document).on("click", ".pageSettings .section.timerStyle .button", (e) => {
let timerStyle = $(e.currentTarget).attr("timer");
setTimerStyle(timerStyle);
// showNotification('Timer style updated', 1000);
setActiveTimerStyleButton();
});
//timer color
$(document).on("click", ".pageSettings .section.timerColor .button", (e) => {
let color = $(e.currentTarget).attr("color");
setTimerColor(color);
// showNotification('Timer style updated', 1000);
setActiveTimerColorButton();
});
//timer opacity
$(document).on("click", ".pageSettings .section.timerOpacity .button", (e) => {
let opacity = $(e.currentTarget).attr("opacity");
setTimerOpacity(opacity);
// showNotification('Timer style updated', 1000);
setActiveTimerOpacityButton();
});
//blind mode
$(".pageSettings .section.blindMode .buttons .button.on").click((e) => {
setBlindMode(true);
// showNotification('Blind mode on', 1000);
setSettingsButton("blindMode", config.blindMode);
});
$(".pageSettings .section.blindMode .buttons .button.off").click((e) => {
setBlindMode(false);
// showNotification('Blind mode off', 1000);
setSettingsButton("blindMode", config.blindMode);
});
//blind mode
$(".pageSettings .section.quickEnd .buttons .button.on").click((e) => {
setQuickEnd(true);
// showNotification('Quick end on', 1000);
setSettingsButton("quickEnd", config.quickEnd);
});
$(".pageSettings .section.quickEnd .buttons .button.off").click((e) => {
setQuickEnd(false);
// showNotification('Quick end off', 1000);
setSettingsButton("quickEnd", config.quickEnd);
});
//flip test
$(".pageSettings .section.flipTestColors .buttons .button.on").click((e) => {
setFlipTestColors(true);
// showNotification('Flip test colors on', 1000);
setSettingsButton("flipTestColors", config.flipTestColors);
});
$(".pageSettings .section.flipTestColors .buttons .button.off").click((e) => {
setFlipTestColors(false);
// showNotification('Flip test colors off', 1000);
setSettingsButton("flipTestColors", config.flipTestColors);
});
//extra color
$(".pageSettings .section.colorfulMode .buttons .button.on").click((e) => {
setColorfulMode(true);
// showNotification('Colorful mode on', 1000);
setSettingsButton("colorfulMode", config.colorfulMode);
});
$(".pageSettings .section.colorfulMode .buttons .button.off").click((e) => {
setColorfulMode(false);
// showNotification('Colorful mode off', 1000);
setSettingsButton("colorfulMode", config.colorfulMode);
});
//extra color
$(".pageSettings .section.randomTheme .buttons .button.on").click((e) => {
setRandomTheme(true);
// showNotification('Colorful mode on', 1000);
setSettingsButton("randomTheme", config.randomTheme);
});
$(".pageSettings .section.randomTheme .buttons .button.off").click((e) => {
setRandomTheme(false);
// showNotification('Colorful mode off', 1000);
setSettingsButton("randomTheme", config.randomTheme);
});
//stop on error
$(".pageSettings .section.stopOnError .buttons .button.on").click((e) => {
setStopOnError(true);
setSettingsButton("stopOnError", config.stopOnError);
});
$(".pageSettings .section.stopOnError .buttons .button.off").click((e) => {
setStopOnError(false);
setSettingsButton("stopOnError", config.stopOnError);
});
//showAllLines
$(".pageSettings .section.showAllLines .buttons .button.on").click((e) => {
setShowAllLines(true);
setSettingsButton("showAllLines", config.showAllLines);
});
$(".pageSettings .section.showAllLines .buttons .button.off").click((e) => {
setShowAllLines(false);
setSettingsButton("showAllLines", config.showAllLines);
});
//discord
$(
".pageSettings .section.discordIntegration .buttons .generateCodeButton"
@ -842,13 +507,6 @@ $(document).on("click", ".pageSettings .section.funbox .button", (e) => {
setActiveFunboxButton();
});
//fontfamily
$(document).on("click", ".pageSettings .section.fontFamily .button", (e) => {
let font = $(e.currentTarget).attr("fontFamily");
setFontFamily(font);
setActiveFontFamilyButton();
});
//tags
$(document).on(
"click",
@ -856,13 +514,6 @@ $(document).on(
(e) => {
let target = e.currentTarget;
let tagid = $(target).parent(".tag").attr("id");
// if($(target).attr('active') === 'true'){
// $(target).attr('active','false');
// $(target).html('<i class="fas fa-square"></i>')
// }else{
// $(target).attr('active','true');
// $(target).html('<i class="fas fa-check-square"></i>')
// }
toggleTag(tagid);
showActiveTags();
}
@ -913,8 +564,6 @@ $(".tab").click((e) => {
if ($target.attr("tab") == "preset") {
setCustomTheme(false);
applyCustomThemeColors();
// $('[tabContent="custom"]').removeClass("reveal");
// $('[tabContent="preset"]').addClass("reveal");
swapElements(
$('.pageSettings [tabContent="custom"]'),
$('.pageSettings [tabContent="preset"]'),
@ -928,9 +577,6 @@ $(".tab").click((e) => {
$('.pageSettings [tabContent="custom"]'),
250
);
// $('[tabContent="preset"]').removeClass("reveal");
// $('[tabContent="custom"]').addClass("reveal");
}
});
@ -942,12 +588,6 @@ $("[type='color']").on("input", (e) => {
document.documentElement.style.setProperty($colorVar, $pickedColor);
$("#" + $colorVar).attr("value", $pickedColor);
$("[for=" + $colorVar + "]").text($pickedColor);
// config.customThemeColors[colorVars.indexOf($colorVar)] = $pickedColor
});
$(".colorPicker").on("change", (e) => {
// Save a color once picked
});
$(".pageSettings .saveCustomThemeButton").click((e) => {
@ -968,9 +608,6 @@ $(".pageSettings .sectionGroupTitle").click((e) => {
.stop(true, true)
.slideToggle(250)
.toggleClass("slideup");
// $(`.pageSettings .sectionGroupTitle[group=${group}] .fas`).toggleClass(
// "rotate"
// );
if ($(`.pageSettings .settingsGroup.${group}`).hasClass("slideup")) {
$(`.pageSettings .sectionGroupTitle[group=${group}] .fas`)
.stop(true, true)

View file

@ -14,7 +14,7 @@ let defaultConfig = {
],
showKeyTips: true,
showLiveWpm: false,
showTimerBar: true,
showTimerProgress: true,
smoothCaret: true,
quickTab: false,
punctuation: false,
@ -31,7 +31,6 @@ let defaultConfig = {
caretStyle: "default",
flipTestColors: false,
layout: "default",
showDiscordDot: true,
confidenceMode: "off",
timerStyle: "bar",
colorfulMode: true,
@ -134,7 +133,6 @@ function applyConfig(configObj) {
setBlindMode(configObj.blindMode, true);
setQuickEnd(configObj.quickEnd, true);
setFlipTestColors(configObj.flipTestColors, true);
setDiscordDot(configObj.hideDiscordDot, true);
setColorfulMode(configObj.colorfulMode, true);
setConfidenceMode(configObj.confidenceMode, true);
setTimerStyle(configObj.timerStyle, true);
@ -144,6 +142,8 @@ function applyConfig(configObj) {
changeKeymapLayout(configObj.keymapLayout, true);
setFontFamily(configObj.fontFamily, true);
setSmoothLineScroll(configObj.smoothLineScroll, true);
setShowLiveWpm(configObj.showLiveWpm, true);
setShowTimerProgress(configObj.showTimerProgress, true);
if (
configObj.resultFilters == null ||
configObj.resultFilters == undefined
@ -192,34 +192,6 @@ function setDifficulty(diff, nosave) {
if (!nosave) saveConfigToCookie();
}
//blind mode
function toggleDiscordDot() {
dot = !config.showDiscordDot;
if (dot == undefined) {
dot = false;
}
config.showDiscordDot = dot;
if (!dot) {
$("#menu .discord").addClass("dotHidden");
} else {
$("#menu .discord").removeClass("dotHidden");
}
saveConfigToCookie();
}
function setDiscordDot(dot, nosave) {
if (dot == undefined) {
dot = false;
}
config.showDiscordDot = dot;
if (!dot) {
$("#menu .discord").addClass("dotHidden");
} else {
$("#menu .discord").removeClass("dotHidden");
}
if (!nosave) saveConfigToCookie();
}
//blind mode
function toggleBlindMode() {
blind = !config.blindMode;
@ -352,6 +324,38 @@ function setCaretStyle(caretStyle, nosave) {
if (!nosave) saveConfigToCookie();
}
function setShowTimerProgress(timer, nosave) {
if (timer == null || timer == undefined) {
timer = false;
}
config.showTimerProgress = timer;
if (!nosave) saveConfigToCookie();
}
function toggleShowTimerProgress() {
config.showTimerProgress = !config.showTimerProgress;
saveConfigToCookie();
}
function setShowLiveWpm(live, nosave) {
if (live == null || live == undefined) {
live = false;
}
config.showLiveWpm = live;
if (config.keymapMode !== "off") {
config.keymapMode = "off";
}
if (!nosave) saveConfigToCookie();
}
function toggleShowLiveWpm() {
config.showLiveWpm = !config.showLiveWpm;
if (config.keymapMode !== "off") {
config.keymapMode = "off";
}
saveConfigToCookie();
}
function setTimerStyle(style, nosave) {
if (style == null || style == undefined) {
style = "bar";