# HG changeset patch # User John "Elwin" Edwards # Date 1340055005 25200 # Node ID 7f3ca16409fe709e156a03ac876a3474fbbe3eb5 # Parent 96815eae4ebe1412631737bbedfdef120f48565f 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. diff -r 96815eae4ebe -r 7f3ca16409fe index-rlg.html --- a/index-rlg.html Mon Jun 18 13:43:51 2012 -0700 +++ b/index-rlg.html Mon Jun 18 14:30:05 2012 -0700 @@ -85,6 +85,12 @@ Larger + diff -r 96815eae4ebe -r 7f3ca16409fe rlgterm.js --- a/rlgterm.js Mon Jun 18 13:43:51 2012 -0700 +++ b/rlgterm.js Mon Jun 18 14:30:05 2012 -0700 @@ -409,6 +409,42 @@ 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 @@ 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"; } } diff -r 96815eae4ebe -r 7f3ca16409fe style-rlg.css --- a/style-rlg.css Mon Jun 18 13:43:51 2012 -0700 +++ b/style-rlg.css Mon Jun 18 14:30:05 2012 -0700 @@ -40,6 +40,15 @@ text-align: center; } +div.formtable > div.tcapt { + display: table-caption; + caption-side: top; + margin: 0 auto; + padding: 0.4em; + font-weight: bold; + text-align: center; +} + span.ibutton { background-color: #D0D0D0; border: 2px solid #101040;