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 = players[vote["vote_plus_id"] - 1]["name"]; let nickname = vote["vote_plus_nickname"]; let reason = vote["vote_plus_reason"]; let moins = document.createElement("button"); moins.textContent = "Et en moins..." moins.addEventListener("click", () => {show_moins(id, votes, players)}) moins.className = "right"; const vote_p = document.createElement("h2"); if (nickname === "") { vote_p.innerHTML = `${player}`; } else { vote_p.innerHTML = `${nickname} (${player})` } const vote_r = document.createElement("p"); vote_r.textContent = reason; const head = document.createElement("h1"); head.innerText = "EN PLUS"; const buttons = document.createElement("div"); buttons.className = "buttons"; buttons.append(moins) app.append(head, vote_p, vote_r, buttons); } function show_moins(id, votes, players) { const app = document.getElementById("app"); app.innerHTML = ""; let vote = votes[id]; let nickname = vote["vote_moins_nickname"]; let reason = vote["vote_moins_reason"]; let player = players[vote["vote_moins_id"] - 1]["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"; const vote_p = document.createElement("h2"); if (nickname === "") { vote_p.innerHTML = `${player}`; } else { vote_p.innerHTML = `${nickname} (${player})` } const vote_r = document.createElement("p"); vote_r.textContent = reason; const head = document.createElement("h1"); head.innerText = "EN MOINS"; const buttons = document.createElement("div"); buttons.className = "buttons"; buttons.append(next) app.append(head, vote_p, vote_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 moins = results[1]; let prev_score = null; let counter = 0; for (let i = 0; i < plus.length; i++) { let p = plus[i]; let player = players[p[0] - 1]["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]} votes!`; 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 < moins.length; i++) { let p = moins[i]; let player = players[p[0] - 1]["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} votes!`; app.append(result); } } let _ = run();