correctly showing cpm on account page when cpm mode is enabled. closes #1842

This commit is contained in:
Jack 2021-09-16 00:27:38 +01:00
parent bcdd85d2b5
commit 5cd7cd6579
2 changed files with 117 additions and 23 deletions

View file

@ -235,7 +235,9 @@ function loadMoreLines(lineIndex) {
let raw;
try {
raw = result.rawWpm.toFixed(2);
raw = Config.alwaysShowCPM
? (result.rawWpm * 5).toFixed(2)
: result.rawWpm.toFixed(2);
if (raw == undefined) {
raw = "-";
}
@ -342,7 +344,7 @@ function loadMoreLines(lineIndex) {
$(".pageAccount .history table tbody").append(`
<tr class="resultRow" id="result-${i}">
<td>${pb}</td>
<td>${result.wpm.toFixed(2)}</td>
<td>${(Config.alwaysShowCPM ? result.wpm * 5 : result.wpm).toFixed(2)}</td>
<td>${raw}</td>
<td>${result.acc.toFixed(2)}%</td>
<td>${consistency}</td>
@ -689,7 +691,7 @@ export function update() {
chartData.push({
x: result.timestamp,
y: result.wpm,
y: Config.alwaysShowCPM ? Misc.roundTo2(result.wpm * 5) : result.wpm,
acc: result.acc,
mode: result.mode,
mode2: result.mode2,
@ -697,7 +699,9 @@ export function update() {
language: result.language,
timestamp: result.timestamp,
difficulty: result.difficulty,
raw: result.rawWpm,
raw: Config.alwaysShowCPM
? Misc.roundTo2(result.rawWpm * 5)
: result.rawWpm,
});
wpmChartData.push(result.wpm);
@ -721,6 +725,17 @@ export function update() {
totalWpm += result.wpm;
});
if (Config.alwaysShowCPM) {
$(".pageAccount .group.history table thead tr td:nth-child(2)").text(
"cpm"
);
} else {
$(".pageAccount .group.history table thead tr td:nth-child(2)").text(
"wpm"
);
}
loadMoreLines();
////////
@ -773,14 +788,33 @@ export function update() {
activityChartData_avgWpm.push({
x: parseInt(date),
y: Misc.roundTo2(
activityChartData[date].totalWpm / activityChartData[date].amount
(Config.alwaysShowCPM
? activityChartData[date].totalWpm * 5
: activityChartData[date].totalWpm) / activityChartData[date].amount
),
});
lastTimestamp = date;
});
if (Config.alwaysShowCPM) {
ChartController.accountActivity.options.scales.yAxes[1].scaleLabel.labelString =
"Average Cpm";
} else {
ChartController.accountActivity.options.scales.yAxes[1].scaleLabel.labelString =
"Average Wpm";
}
ChartController.accountActivity.data.datasets[0].data = activityChartData_time;
ChartController.accountActivity.data.datasets[1].data = activityChartData_avgWpm;
if (Config.alwaysShowCPM) {
ChartController.accountHistory.options.scales.yAxes[0].scaleLabel.labelString =
"Characters per Minute";
} else {
ChartController.accountHistory.options.scales.yAxes[0].scaleLabel.labelString =
"Words per Minute";
}
ChartController.accountHistory.data.datasets[0].data = chartData;
ChartController.accountHistory.data.datasets[1].data = accChartData;
@ -818,19 +852,75 @@ export function update() {
Misc.secondsToString(Math.round(totalSecondsFiltered), true, true)
);
$(".pageAccount .highestWpm .val").text(topWpm);
$(".pageAccount .averageWpm .val").text(Math.round(totalWpm / testCount));
$(".pageAccount .averageWpm10 .val").text(
Math.round(wpmLast10total / last10)
);
if (Config.alwaysShowCPM) {
$(".pageAccount .highestWpm .title").text("highest cpm");
$(".pageAccount .highestWpm .val").text(Misc.roundTo2(topWpm * 5));
} else {
$(".pageAccount .highestWpm .title").text("highest wpm");
$(".pageAccount .highestWpm .val").text(Misc.roundTo2(topWpm));
}
$(".pageAccount .highestRaw .val").text(rawWpm.max);
$(".pageAccount .averageRaw .val").text(
Math.round(rawWpm.total / rawWpm.count)
);
$(".pageAccount .averageRaw10 .val").text(
Math.round(rawWpm.last10Total / rawWpm.last10Count)
);
if (Config.alwaysShowCPM) {
$(".pageAccount .averageWpm .title").text("average cpm");
$(".pageAccount .averageWpm .val").text(
Math.round((totalWpm * 5) / testCount)
);
} else {
$(".pageAccount .averageWpm .title").text("average wpm");
$(".pageAccount .averageWpm .val").text(Math.round(totalWpm / testCount));
}
if (Config.alwaysShowCPM) {
$(".pageAccount .averageWpm10 .title").text(
"average cpm (last 10 tests)"
);
$(".pageAccount .averageWpm10 .val").text(
Math.round((wpmLast10total * 5) / last10)
);
} else {
$(".pageAccount .averageWpm10 .title").text(
"average wpm (last 10 tests)"
);
$(".pageAccount .averageWpm10 .val").text(
Math.round(wpmLast10total / last10)
);
}
if (Config.alwaysShowCPM) {
$(".pageAccount .highestRaw .title").text("highest raw cpm");
$(".pageAccount .highestRaw .val").text(Misc.roundTo2(rawWpm.max * 5));
} else {
$(".pageAccount .highestRaw .title").text("highest raw wpm");
$(".pageAccount .highestRaw .val").text(Misc.roundTo2(rawWpm.max));
}
if (Config.alwaysShowCPM) {
$(".pageAccount .averageRaw .title").text("average raw cpm");
$(".pageAccount .averageRaw .val").text(
Math.round((rawWpm.total * 5) / rawWpm.count)
);
} else {
$(".pageAccount .averageRaw .title").text("average raw wpm");
$(".pageAccount .averageRaw .val").text(
Math.round(rawWpm.total / rawWpm.count)
);
}
if (Config.alwaysShowCPM) {
$(".pageAccount .averageRaw10 .title").text(
"average raw cpm (last 10 tests)"
);
$(".pageAccount .averageRaw10 .val").text(
Math.round((rawWpm.last10Total * 5) / rawWpm.last10Count)
);
} else {
$(".pageAccount .averageRaw10 .title").text(
"average raw wpm (last 10 tests)"
);
$(".pageAccount .averageRaw10 .val").text(
Math.round(rawWpm.last10Total / rawWpm.last10Count)
);
}
$(".pageAccount .highestWpm .mode").html(topMode);
$(".pageAccount .testsTaken .val").text(testCount);
@ -888,8 +978,11 @@ export function update() {
$(".pageAccount .group.chart .below .text").text(
`Speed change per hour spent typing: ${
plus + Misc.roundTo2(wpmChangePerHour)
} wpm.`
plus +
Misc.roundTo2(
Config.alwaysShowCPM ? wpmChangePerHour * 5 : wpmChangePerHour
)
} ${Config.alwaysShowCPM ? "cpm" : "wpm"}.`
);
ChartController.accountHistory.update({ duration: 0 });

View file

@ -3,6 +3,7 @@ import * as TestStats from "./test-stats";
import * as ThemeColors from "./theme-colors";
import * as Misc from "./misc";
import * as Account from "./account";
import Config, * as UpdateConfig from "./config";
export let result = new Chart($("#wpmChart"), {
type: "line",
@ -212,9 +213,7 @@ export let accountHistory = new Chart($(".pageAccount #accountHistoryChart"), {
)}%\nacc: ${Misc.roundTo2(100 - resultData.y)}%`;
}
let label =
`${data.datasets[tooltipItem.datasetIndex].label}: ${
tooltipItem.yLabel
}` +
`${Config.alwaysShowCPM ? "cpm" : "wpm"}: ${tooltipItem.yLabel}` +
"\n" +
`raw: ${resultData.raw}` +
"\n" +
@ -364,7 +363,9 @@ export let accountActivity = new Chart(
true
)}\nTests Completed: ${resultData.amount}`;
} else if (tooltipItem.datasetIndex === 1) {
return `Average Wpm: ${Misc.roundTo2(resultData.y)}`;
return `Average ${
Config.alwaysShowCPM ? "Cpm" : "Wpm"
}: ${Misc.roundTo2(resultData.y)}`;
}
},
label: function () {