From 3a8b518b8dec3ca9e983e5339bff797f25ac05ff Mon Sep 17 00:00:00 2001 From: Arnaud Bailly Date: Tue, 4 Nov 2025 06:05:35 +0100 Subject: Add leaderboard --- lambda-calcul/haskell/public/index.html | 1 + lambda-calcul/haskell/public/leaderboard.html | 28 +++++++++++++++++++++++ lambda-calcul/haskell/public/leaderboard.js | 13 +++++++++++ lambda-calcul/haskell/public/minilang.css | 33 +++++++++++++++++++++++++++ lambda-calcul/haskell/public/repl.html | 1 + 5 files changed, 76 insertions(+) create mode 100644 lambda-calcul/haskell/public/leaderboard.html create mode 100644 lambda-calcul/haskell/public/leaderboard.js (limited to 'lambda-calcul/haskell/public') diff --git a/lambda-calcul/haskell/public/index.html b/lambda-calcul/haskell/public/index.html index c893865..3329442 100644 --- a/lambda-calcul/haskell/public/index.html +++ b/lambda-calcul/haskell/public/index.html @@ -3,6 +3,7 @@ Minilang + + + + + + Leaderboard + + + + + + +

Leaderboard

+
+ + + + + + + +
NameGradeLast test
Foo12
+
+ + + diff --git a/lambda-calcul/haskell/public/leaderboard.js b/lambda-calcul/haskell/public/leaderboard.js new file mode 100644 index 0000000..b8c1a9a --- /dev/null +++ b/lambda-calcul/haskell/public/leaderboard.js @@ -0,0 +1,13 @@ +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; + }); +}; + +document.addEventListener('DOMContentLoaded', () => { + setInterval(updateLeaderboard, 5000); +}); diff --git a/lambda-calcul/haskell/public/minilang.css b/lambda-calcul/haskell/public/minilang.css index 2c9e6a1..546eb69 100644 --- a/lambda-calcul/haskell/public/minilang.css +++ b/lambda-calcul/haskell/public/minilang.css @@ -79,6 +79,8 @@ button#send { h1 { text-align: center; + width: 100%; + display: block; } div.choice { @@ -101,3 +103,34 @@ div.choice a { border-radius: 10px; flex: 2 1 250px;; } + +table { + align-self: stretch; + width: 100%; + border-collapse: collapse; +} + +table, th, td { + border: 1px solid black; +} + +th, td { + padding: 15px; + text-align: left; +} + +th { + background-color: #f2f2f2; +} + +tr:nth-child(even) { + background-color: #f2f2f2; +} + +.success { + background-color: green; +} + +.fail { + background-color: red; +} diff --git a/lambda-calcul/haskell/public/repl.html b/lambda-calcul/haskell/public/repl.html index 85801d7..ee24236 100644 --- a/lambda-calcul/haskell/public/repl.html +++ b/lambda-calcul/haskell/public/repl.html @@ -3,6 +3,7 @@ Minilang +