RLG-Web client: display a list of current games.
Incorporate information from /status to create a list of ongoing games. Eventually these will be watchable.
This commit is contained in:
parent
1ffb72866a
commit
2bdd26b2f4
3 changed files with 57 additions and 0 deletions
42
rlgterm.js
42
rlgterm.js
|
|
@ -409,6 +409,42 @@ function formlogin(ev) {
|
|||
return;
|
||||
}
|
||||
|
||||
function getcurrent() {
|
||||
if (termemu.sessid)
|
||||
return;
|
||||
var req = new XMLHttpRequest();
|
||||
req.onreadystatechange = function () {
|
||||
if (req.readyState != 4 || req.status != 200)
|
||||
return;
|
||||
var reply;
|
||||
try {
|
||||
reply = JSON.parse(req.responseText);
|
||||
} catch (e) {
|
||||
if (e instanceof SyntaxError)
|
||||
return;
|
||||
}
|
||||
if (!reply.s) {
|
||||
return;
|
||||
}
|
||||
var gamediv = document.getElementById("gametable");
|
||||
while (gamediv.children.length > 2)
|
||||
gamediv.removeChild(optdiv.children[2]);
|
||||
for (var i = 0; i < reply.g.length; i++) {
|
||||
var row = document.createElement("div");
|
||||
var cell1 = document.createElement("div");
|
||||
var cell2 = document.createElement("div");
|
||||
cell1.appendChild(document.createTextNode(reply.g[i].p));
|
||||
cell2.appendChild(document.createTextNode(reply.g[i].g));
|
||||
row.appendChild(cell1);
|
||||
row.appendChild(cell2);
|
||||
gamediv.appendChild(row);
|
||||
}
|
||||
};
|
||||
req.open('GET', '/status', true);
|
||||
req.send();
|
||||
return;
|
||||
}
|
||||
|
||||
function getchoices() {
|
||||
if (termemu.sessid != null || !lcred)
|
||||
return;
|
||||
|
|
@ -587,25 +623,31 @@ function setmode(mode, ev) {
|
|||
document.getElementById("startgame").style.display = "none";
|
||||
document.getElementById("login").style.display = "none";
|
||||
document.getElementById("register").style.display = "none";
|
||||
document.getElementById("current").style.display = "none";
|
||||
}
|
||||
if (mode == "choose") {
|
||||
document.getElementById("keyboard").style.display = "none";
|
||||
document.getElementById("startgame").style.display = "block";
|
||||
document.getElementById("login").style.display = "none";
|
||||
document.getElementById("register").style.display = "none";
|
||||
document.getElementById("current").style.display = "block";
|
||||
getchoices();
|
||||
getcurrent();
|
||||
}
|
||||
else if (mode == "login") {
|
||||
document.getElementById("keyboard").style.display = "none";
|
||||
document.getElementById("startgame").style.display = "none";
|
||||
document.getElementById("login").style.display = "block";
|
||||
document.getElementById("register").style.display = "none";
|
||||
document.getElementById("current").style.display = "block";
|
||||
getcurrent();
|
||||
}
|
||||
else if (mode == "register") {
|
||||
document.getElementById("keyboard").style.display = "none";
|
||||
document.getElementById("startgame").style.display = "none";
|
||||
document.getElementById("login").style.display = "none";
|
||||
document.getElementById("register").style.display = "block";
|
||||
document.getElementById("current").style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue