summaryrefslogtreecommitdiff
path: root/lambda-calcul/haskell/public/leaderboard.js
diff options
context:
space:
mode:
Diffstat (limited to 'lambda-calcul/haskell/public/leaderboard.js')
-rw-r--r--lambda-calcul/haskell/public/leaderboard.js31
1 files changed, 28 insertions, 3 deletions
diff --git a/lambda-calcul/haskell/public/leaderboard.js b/lambda-calcul/haskell/public/leaderboard.js
index b8c1a9a..63dcfde 100644
--- a/lambda-calcul/haskell/public/leaderboard.js
+++ b/lambda-calcul/haskell/public/leaderboard.js
@@ -2,10 +2,35 @@ const updateLeaderboard = () => {
const rows = document.querySelectorAll('table#leaderboard > tbody > tr');
rows.forEach(row => {
- const scoreCell = row.querySelector('td.score');
- const randomScore = Math.floor(Math.random() * 1000);
- scoreCell.textContent = randomScore;
+ row.remove();
});
+
+ fetch('/api/leaderboard')
+ .then(response => response.json())
+ .then(data => {
+ const tbody = document.querySelector('table#leaderboard > tbody');
+
+ data.forEach((entry, index) => {
+ const row = document.createElement('tr');
+
+ const nameCell = document.createElement('td');
+ nameCell.textContent = entry.name;
+ row.appendChild(nameCell);
+
+ const scoreCell = document.createElement('td');
+ scoreCell.textContent = entry.grade;
+ row.appendChild(scoreCell);
+
+ const timeCell = document.createElement('td');
+ timeCell.textContent = entry.lastTest;
+ row.appendChild(timeCell);
+
+ tbody.appendChild(row);
+ });
+ })
+ .catch(error => {
+ console.error('Error fetching leaderboard data:', error);
+ });
};
document.addEventListener('DOMContentLoaded', () => {