async function run() { const votes = await fetch("data/votes").then(r => r.json()); const players = await fetch("data/players").then(r => r.json()); let id = 0; if (votes.length === 0) { show_no_votes(); } else { show_plus(id, votes, players);} } function show_no_votes() { const app = document.getElementById("app"); const sorry = document.createElement("h1"); sorry.textContent = "Désolé..."; sorry.style.textAlign = "center"; const expl = document.createElement("h3"); expl.textContent = "Mais il n'y a pas de votes pour le moment."; expl.style.textAlign = "center"; app.append(sorry, expl); } function show_plus(id, votes, players) { const app = document.getElementById("app"); app.innerHTML = ""; let vote = votes[id]; let player = "?"; for (let i = 0; i < players.length; i++) { if (players[i].id === vote["plus_player_id"]) { player = players[i]["name"]; } } let nickname = vote["plus_nickname"]; let reason = vote["plus_reason"]; let minus = document.createElement("button"); minus.textContent = "Et en moins..." minus.addEventListener("click", () => {show_minus(id, votes, players)}) minus.className = "right"; let prev = document.createElement("button"); prev.textContent = "Vote précédent"; prev.addEventListener("click", () => {show_plus(id-1, votes, players)}); prev.className = "left"; const p = document.createElement("h2"); if (nickname === "") { p.innerHTML = `${player}`; } else { p.innerHTML = `${nickname} (${player})`; } const r = document.createElement("p"); r.textContent = reason; const head = document.createElement("h1"); head.innerText = "EN PLUS"; const buttons = document.createElement("div"); buttons.className = "buttons"; if (id-1>=0) { buttons.append(prev); } buttons.append(minus); app.append(head, p, r, buttons); } function show_minus(id, votes, players) { const app = document.getElementById("app"); app.innerHTML = ""; let vote = votes[id]; let nickname = vote["minus_nickname"]; let reason = vote["minus_reason"]; let player = "?"; for (let i = 0; i < players.length; i++) { if (players[i].id === vote["minus_player_id"]) { player = players[i]["name"]; } } let next = document.createElement("button"); if (id === votes.length - 1) { next.textContent = "Résultats"; } else { next.textContent = "Prochain vote"; } next.addEventListener("click", () => { if (id === votes.length - 1) { let _ = show_results(players) } else { show_plus(id+1, votes, players) } }) next.className = "right"; let prev = document.createElement("button"); prev.textContent = "Vote précédent"; prev.addEventListener("click", () => {show_plus(id-1, votes, players)}); prev.className = "left"; const p = document.createElement("h2"); if (nickname === "") { p.innerHTML = `${player}`; } else { p.innerHTML = `${nickname} (${player})`; } const r = document.createElement("p"); r.textContent = reason; const head = document.createElement("h1"); head.innerText = "EN MOINS"; const buttons = document.createElement("div"); buttons.className = "buttons"; if (id-1>=0) { buttons.append(prev); } buttons.append(next); app.append(head, p, r, buttons); } async function show_results(players) { const app = document.getElementById("app"); app.innerHTML = "" const res = document.createElement("h1"); res.textContent = "Résultats"; res.style.textAlign = "center"; app.append(res); const vp = document.createElement("h1"); vp.textContent = "En plus:"; app.append(vp); let results = await fetch("data/results").then(r => r.json()); let plus = results[0]; let minus = results[1]; let prev_score = null; let counter = 0; for (let i = 0; i < plus.length; i++) { let p = plus[i]; let player = "?"; for (let i = 0; i < players.length; i++) { if (players[i].id === p[0]) { player = players[i]["name"]; } } let score = p[1]; if (prev_score == null || score < prev_score) { counter += 1; prev_score = score; const place = document.createElement("h2"); place.textContent = `En ${counter}${counter === 1 ? "ère" : "ème"} place:`; app.append(place); } const result = document.createElement("h3"); result.textContent = `${player} avec ${p[1]} vote${p[1] > 1? 's' : ''}!`; app.append(result); } const sep = document.createElement("hr"); app.append(sep); const vm = document.createElement("h1"); vm.textContent = "En moins:"; app.append(vm); prev_score = null; counter = 0; for (let i = 0; i < minus.length; i++) { let p = minus[i]; let player = "?"; for (let i = 0; i < players.length; i++) { if (players[i].id === p[0]) { player = players[i]["name"]; } } let score = p[1]; if (prev_score == null || score < prev_score) { counter += 1; prev_score = score; const place = document.createElement("h2"); place.textContent = `En ${counter}${counter === 1 ? "ère" : "ème"} place:`; app.append(place); } const result = document.createElement("h3"); result.textContent = `${player} avec ${score} vote${score > 1 ?'s': ''}!`; app.append(result); } } let login = document.getElementById("login"); let logged = document.cookie.includes("logged=true"); login.textContent = logged ? "Se déconnecter" : "Se connecter"; login.href = logged ? "/logout" : "/login"; let _ = run();