Mercurial > hg > rlgwebd
comparison rlgterm.js @ 66:57bf0dcd080e
Display idle time of games in progress.
statusmsg() now includes games' idle times, and the client displays
them using getcurrent().
author | John "Elwin" Edwards <elwin@sdf.org> |
---|---|
date | Wed, 20 Jun 2012 11:37:05 -0700 |
parents | e63c26dc0497 |
children | b6a3b26fe0dc |
comparison
equal
deleted
inserted
replaced
65:e63c26dc0497 | 66:57bf0dcd080e |
---|---|
451 for (var i = 0; i < reply.g.length; i++) { | 451 for (var i = 0; i < reply.g.length; i++) { |
452 var row = document.createElement("div"); | 452 var row = document.createElement("div"); |
453 var cell1 = document.createElement("div"); | 453 var cell1 = document.createElement("div"); |
454 var cell2 = document.createElement("div"); | 454 var cell2 = document.createElement("div"); |
455 var cell3 = document.createElement("div"); | 455 var cell3 = document.createElement("div"); |
456 var cell4 = document.createElement("div"); | |
456 cell1.appendChild(document.createTextNode(reply.g[i].p)); | 457 cell1.appendChild(document.createTextNode(reply.g[i].p)); |
457 var uname = reply.g[i].g; | 458 var uname = reply.g[i].g; |
458 if (uname in games) | 459 if (uname in games) |
459 cell2.appendChild(document.createTextNode(games[uname].name)); | 460 cell2.appendChild(document.createTextNode(games[uname].name)); |
460 else { | 461 else { |
461 debug(1, "Unrecognized game: " + uname); | 462 debug(1, "Unrecognized game: " + uname); |
462 continue; | 463 continue; |
463 } | 464 } |
465 cell3.appendChild(document.createTextNode(idlestr(reply.g[i].i))); | |
464 var button = document.createElement("span"); | 466 var button = document.createElement("span"); |
465 button.appendChild(document.createTextNode("Watch")); | 467 button.appendChild(document.createTextNode("Watch")); |
466 button.onclick = makeWatcher(reply.g[i].n); | 468 button.onclick = makeWatcher(reply.g[i].n); |
467 button.className = "ibutton"; | 469 button.className = "ibutton"; |
468 cell3.appendChild(button); | 470 cell4.appendChild(button); |
469 row.appendChild(cell1); | 471 row.appendChild(cell1); |
470 row.appendChild(cell2); | 472 row.appendChild(cell2); |
471 row.appendChild(cell3); | 473 row.appendChild(cell3); |
474 row.appendChild(cell4); | |
472 gamediv.appendChild(row); | 475 gamediv.appendChild(row); |
473 } | 476 } |
474 }; | 477 }; |
475 req.open('GET', '/status', true); | 478 req.open('GET', '/status', true); |
476 req.send(); | 479 req.send(); |
777 termemu.fixsize(); | 780 termemu.fixsize(); |
778 debug(1, "Changing font size to " + nsize.toString()); | 781 debug(1, "Changing font size to " + nsize.toString()); |
779 return; | 782 return; |
780 } | 783 } |
781 | 784 |
785 function idlestr(ms) { | |
786 if (typeof(ms) != "number") | |
787 return "?"; | |
788 var seconds = Math.round(ms / 1000); | |
789 var ss = String(seconds % 60); | |
790 if (ss.length < 2) | |
791 ss = "0" + ss; | |
792 var mm = String(Math.floor((seconds % 3600) / 60)); | |
793 if (mm.length < 2) | |
794 mm = "0" + mm; | |
795 var hh = String(Math.floor(seconds / 3600)); | |
796 if (hh.length < 2) | |
797 hh = "0" + hh; | |
798 return hh + ":" + mm + ":" + ss; | |
799 } | |
800 | |
782 function bell(on) { | 801 function bell(on) { |
783 var imgnode = document.getElementById("bell"); | 802 var imgnode = document.getElementById("bell"); |
784 if (on) { | 803 if (on) { |
785 imgnode.style.visibility = "visible"; | 804 imgnode.style.visibility = "visible"; |
786 window.setTimeout(bell, 1500, false); | 805 window.setTimeout(bell, 1500, false); |