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:
John "Elwin" Edwards 2012-06-18 14:30:05 -07:00
parent 1ffb72866a
commit 2bdd26b2f4
3 changed files with 57 additions and 0 deletions

View file

@ -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";
}
}