+
# |
@@ -89,102 +89,13 @@
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
+
- Daily (30-05-2020)
+ Daily
@@ -199,98 +110,10 @@
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
-
- 1 |
- jack |
- 100 |
- 110 |
- 95 |
- words10 |
- now |
-
+ soon
+
@@ -342,7 +165,7 @@
diff --git a/public/js/leaderboards.js b/public/js/leaderboards.js
index df8d7b7c5..8f1c77fe7 100644
--- a/public/js/leaderboards.js
+++ b/public/js/leaderboards.js
@@ -1,3 +1,9 @@
+let currentLeaderboard = {
+ mode: "words",
+ words: "10",
+ time: "15",
+};
+
function showLeaderboards() {
if ($("#leaderboardsWrapper").hasClass("hidden")) {
$("#leaderboardsWrapper")
@@ -8,7 +14,10 @@ function showLeaderboards() {
{
opacity: 1,
},
- 125
+ 125,
+ () => {
+ updateLeaderboards();
+ }
);
}
}
@@ -29,8 +38,82 @@ function hideLeaderboards() {
focusWords();
}
+function updateLeaderboards() {
+ $("#leaderboardsWrapper .leaderboardMode .button").removeClass("active");
+ $(
+ `#leaderboardsWrapper .leaderboardMode .button[mode=${currentLeaderboard.mode}]`
+ ).addClass("active");
+
+ $("#leaderboardsWrapper .leaderboardWords .button").removeClass("active");
+ $(
+ `#leaderboardsWrapper .leaderboardWords .button[words=${currentLeaderboard.words}]`
+ ).addClass("active");
+
+ $("#leaderboardsWrapper .leaderboardTime .button").removeClass("active");
+ $(
+ `#leaderboardsWrapper .leaderboardTime .button[time=${currentLeaderboard.time}]`
+ ).addClass("active");
+
+ if (currentLeaderboard.mode === "time") {
+ $("#leaderboardsWrapper .leaderboardWords").addClass("hidden");
+ $("#leaderboardsWrapper .leaderboardTime").removeClass("hidden");
+ } else if (currentLeaderboard.mode === "words") {
+ $("#leaderboardsWrapper .leaderboardWords").removeClass("hidden");
+ $("#leaderboardsWrapper .leaderboardTime").addClass("hidden");
+ }
+
+ let mode2;
+ if (currentLeaderboard.mode === "words") {
+ mode2 = currentLeaderboard.words;
+ } else if (currentLeaderboard.mode === "time") {
+ mode2 = currentLeaderboard.time;
+ }
+
+ showBackgroundLoader();
+ firebase
+ .functions()
+ .httpsCallable("getLeaderboard")({
+ mode: currentLeaderboard.mode,
+ mode2: mode2,
+ type: "global",
+ })
+ .then((data) => {
+ console.log(data);
+ hideBackgroundLoader();
+ $("#leaderboardsWrapper table.global tbody").empty();
+ data.data.board.forEach((entry, index) => {
+ $("#leaderboardsWrapper table.global tbody").append(`
+
+ ${index + 1} |
+ ${entry.name} |
+ ${entry.wpm} |
+ ${entry.raw} |
+ ${entry.acc} |
+ ${entry.mode} ${entry.mode2} |
+ ${moment(entry.timestamp).format("DD MMM YYYY HH:mm")} |
+
+ `);
+ });
+ });
+}
+
$("#leaderboardsWrapper").click((e) => {
if ($(e.target).attr("id") === "leaderboardsWrapper") {
hideLeaderboards();
}
});
+
+$("#leaderboardsWrapper .leaderboardMode .button").click((e) => {
+ currentLeaderboard.mode = $(e.target).attr("mode");
+ updateLeaderboards();
+});
+
+$("#leaderboardsWrapper .leaderboardWords .button").click((e) => {
+ currentLeaderboard.words = $(e.target).attr("words");
+ updateLeaderboards();
+});
+
+$("#leaderboardsWrapper .leaderboardTime .button").click((e) => {
+ currentLeaderboard.time = $(e.target).attr("time");
+ updateLeaderboards();
+});