diff --git a/site/board/board.js b/site/board/board.js index 2c6e6ab..a26a581 100644 --- a/site/board/board.js +++ b/site/board/board.js @@ -1,9 +1,11 @@ -let load_url = "https://exmods.org/load?board=test1&count=10&start=0"; +let load_url = "https://exmods.org/load?board=main-test&count=10&start=0"; +let test_url = "http://localhost:1337/load?board=main-test&count=15&start=0"; +//load_url = test_url // testing only 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 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 :(";}, 5000) // 5s @@ -38,14 +40,19 @@ function build_entry(entry) { rankEntry.innerText = entry.Rank rankEntry.classList.add("board-rank") newEntry.appendChild(rankEntry) - // name + // name and url 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 + let splitUrl = entry.PlayerURL.split("?") + if (load_url === test_url) { + nameAElem.href = "../board"+splitUrl[0]+".html?"+splitUrl.slice(1).join("?") + } else { + nameAElem.href = "/board"+splitUrl[0]+".html?"+splitUrl.slice(1).join("?") + } nameAElem.innerText = entry.PlayerName nameElem.appendChild(nameAElem) newEntry.appendChild(nameElem) diff --git a/site/board/player.html b/site/board/player.html new file mode 100644 index 0000000..b7b7050 --- /dev/null +++ b/site/board/player.html @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + Exmods + + + +

Player

+
+
+ + +
+
+

Recent activity

+
+
+
+ Rank + Board + Score +
+
+
+ + diff --git a/site/board/player.js b/site/board/player.js new file mode 100644 index 0000000..f81ed1d --- /dev/null +++ b/site/board/player.js @@ -0,0 +1,79 @@ +let load_url = "https://exmods.org/player" +let test_url = "http://localhost:1337/player" +//load_url = test_url // testing only + +function build_player() { + // build + let player = document.getElementById("player-name") + let player_link = document.getElementById("player-link") + let leaderboard = document.getElementById("leaderboard") + let leaderboard_container = document.getElementById("leaderboard-container") + let tmpEntry = {ID: -42, Rank:"?", BoardURL: "", BoardName:"Loading...", PlayerURL: "", PlayerName: "Loading...", Score:">9000"} + let errEntry = build_entry(tmpEntry) + leaderboard.appendChild(errEntry) + let gen_url = load_url+"?"+window.location.href.split("?").slice(1).join("?")+"&entries=10" + setTimeout(() => {document.getElementById("nameAnchor-42").innerText = "Something went wrong :(";}, 5000) // 5s + fetch(gen_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) => { + if (result.Items.length!=1) { + document.getElementById("nameAnchor-42").innerText = "Something went wrong :(" + return + } + errEntry.style.display = "none" + leaderboard.removeChild(errEntry) + // build player + player_link.innerText = result.Items[0].Name + player_link.href = ""// TODO use result.Items[0].Url + // build leaderboard + for (entry of result.Items[0].Entries) { + 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 and url + 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") + let splitUrl = entry.BoardURL.split("?") + if (load_url === test_url) { + nameAElem.href = "../board/"+splitUrl[0]+".html?"+splitUrl.slice(1).join("?") + } else { + nameAElem.href = "/board/"+splitUrl[0]+".html?"+splitUrl.slice(1).join("?") + } + nameAElem.innerText = entry.BoardName + 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/static/style.css b/site/static/style.css index 7e17778..96ccbbb 100644 --- a/site/static/style.css +++ b/site/static/style.css @@ -112,3 +112,43 @@ span { font-size: 150%; color: #112211; } + +/* player style */ +.player { + font-size: 200%; + background-color: #e0e0e0; + color: #111111; + width: 100%; +} + +.player-container { + width: 99%; + text-align: left; + border: 5px; + border-style: solid; + border-color: #505050; +} + +.player-name { + width: 75%; + font-size: 300%; + padding-left: 1%; + padding-right: 1%; + overflow: hidden; + vertical-align: middle; +} + +.player-link { + width: 100%; +} + +.player-avatar { + width: 20%; + text-align: center; + margin: 0.5%; + border-style: solid; + border-color: #505050; + border: 5px; + border-right: 5px; + vertical-align: middle; +}