added the ability to shift click qutoe lengths to select multiple

This commit is contained in:
Miodec 2021-03-10 02:10:35 +00:00
parent dadfd13dd3
commit 34e3842c65
2 changed files with 53 additions and 22 deletions

View file

@ -599,29 +599,45 @@ async function initWords() {
return;
}
let group = config.quoteLength;
if (config.quoteLength === -1) {
group = Math.floor(Math.random() * quotes.groups.length);
while (quotes.groups[group].length === 0) {
group = Math.floor(Math.random() * quotes.groups.length);
let quoteLengths = config.quoteLength;
let groupIndex;
if (quoteLengths.length > 1) {
groupIndex =
quoteLengths[Math.floor(Math.random() * quoteLengths.length)];
while (quotes.groups[groupIndex].length === 0) {
groupIndex =
quoteLengths[Math.floor(Math.random() * quoteLengths.length)];
}
} else {
if (quotes.groups[group].length === 0) {
groupIndex = quoteLengths[0];
if (quotes.groups[groupIndex].length === 0) {
Notifications.add("No quotes found for selected quote length", 0);
testRestarting = false;
return;
}
}
// if (config.quoteLength === -1) {
// group = Math.floor(Math.random() * quotes.groups.length);
// while (quotes.groups[group].length === 0) {
// group = Math.floor(Math.random() * quotes.groups.length);
// }
// } else {
// if (quotes.groups[group].length === 0) {
// Notifications.add("No quotes found for selected quote length", 0);
// testRestarting = false;
// return;
// }
// }
let rq =
quotes.groups[group][
Math.floor(Math.random() * quotes.groups[group].length)
quotes.groups[groupIndex][
Math.floor(Math.random() * quotes.groups[groupIndex].length)
];
if (randomQuote != null && rq.id === randomQuote.id) {
rq =
quotes.groups[group][
Math.floor(Math.random() * quotes.groups[group].length)
quotes.groups[groupIndex][
Math.floor(Math.random() * quotes.groups[groupIndex].length)
];
}
randomQuote = rq;
@ -4737,7 +4753,10 @@ $(document).on("click", "#top .config .time .text-button", (e) => {
$(document).on("click", "#top .config .quoteLength .text-button", (e) => {
let len = $(e.currentTarget).attr("quoteLength");
setQuoteLength(len);
if (len == -1) {
len = [0, 1, 2, 3];
}
setQuoteLength(len, false, e.shiftKey);
manualRestart = true;
restartTest();
});

View file

@ -23,7 +23,7 @@ let defaultConfig = {
words: 50,
time: 30,
mode: "time",
quoteLength: 1,
quoteLength: [1],
language: "english",
fontSize: 15,
freedomMode: false,
@ -815,18 +815,30 @@ function setTimeConfig(time, nosave) {
}
//quote length
function setQuoteLength(len, nosave) {
if (len !== null && !isNaN(len) && len >= -1 && len <= 3) {
function setQuoteLength(len, nosave, multipleMode) {
if (Array.isArray(len)) {
//config load
config.quoteLength = len;
} else {
len = 1;
if (!Array.isArray(config.quoteLength)) config.quoteLength = [];
if (len !== null && !isNaN(len) && len >= -1 && len <= 3) {
} else {
len = 1;
}
len = parseInt(len);
if (multipleMode) {
if (!config.quoteLength.includes(len)) config.quoteLength.push(len);
} else {
config.quoteLength = [len];
}
}
len = parseInt(len);
if (!nosave) setMode("quote", nosave);
config.quoteLength = len;
// if (!nosave) setMode("quote", nosave);
$("#top .config .quoteLength .text-button").removeClass("active");
$(
"#top .config .quoteLength .text-button[quoteLength='" + len + "']"
).addClass("active");
config.quoteLength.forEach((ql) => {
$(
"#top .config .quoteLength .text-button[quoteLength='" + ql + "']"
).addClass("active");
});
if (!nosave) saveConfigToCookie();
}