diff --git a/.gitignore b/.gitignore index e61bca2..c458e60 100644 --- a/.gitignore +++ b/.gitignore @@ -103,9 +103,6 @@ venv.bak/ # Rope project settings .ropeproject -# mkdocs documentation -/site - # mypy .mypy_cache/ .dmypy.json diff --git a/site/board/board.js b/site/board/board.js new file mode 100644 index 0000000..3030cbd --- /dev/null +++ b/site/board/board.js @@ -0,0 +1,59 @@ +let load_url = "https://exmods.org/load?board=test1&count=10&start=0"; + +function build_board() { + let leaderboard = document.getElementById("leaderboard") + let leaderboard_container = document.getElementById("leaderboard-container") + let tmpEntry = {ID: -42, Rank:"?", PlayerURL: "#", PlayerName: "Loading...", Score:">9000"} + let errEntry = build_entry(tmpEntry) + leaderboard.appendChild(errEntry) + setTimeout(() => {document.getElementById("nameAnchor-42").innerText = "Something went wrong :(";}, 4000) // 5s + fetch(load_url).then( + (response) => { + if (!response.ok || (response.status) != 200) { + document.getElementById("nameAnchor-42").innerText = "Something went wrong :(" + return + } + errEntry.style.display = "none" + response.json().then( + (result) => { + leaderboard.removeChild(errEntry) + for (entry of result.Items) { + let newEntry = build_entry(entry) + // end + leaderboard.appendChild(newEntry) + } + } + ) + } + ) +} + +function build_entry(entry) { + let newEntry = document.createElement("div") + newEntry.setAttribute("id", "entry"+entry.ID) + newEntry.classList.add("board-entry") + // rank + let rankEntry = document.createElement("span") + rankEntry.setAttribute("id", "rank"+entry.ID) + rankEntry.innerText = entry.Rank + rankEntry.classList.add("board-rank") + newEntry.appendChild(rankEntry) + // name + let nameElem = document.createElement("span") + nameElem.setAttribute("id", "name"+entry.ID) + nameElem.classList.add("board-name") + let nameAElem = document.createElement("a") + nameAElem.setAttribute("id", "nameAnchor"+entry.ID) + nameAElem.classList.add("board-name-a") + nameAElem.href = entry.PlayerURL + nameAElem.innerText = entry.PlayerName + nameElem.appendChild(nameAElem) + newEntry.appendChild(nameElem) + // score + let scoreElem = document.createElement("span") + scoreElem.setAttribute("id", "score"+entry.ID) + scoreElem.classList.add("board-score") + scoreElem.innerText = entry.Score + newEntry.appendChild(scoreElem) + return newEntry +} diff --git a/site/board/index.html b/site/board/index.html new file mode 100644 index 0000000..382257a --- /dev/null +++ b/site/board/index.html @@ -0,0 +1,33 @@ + + + +
+ + + + + + + + + + + + +