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
+
+
+
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;
+}