# HG changeset patch # User John "Elwin" Edwards # Date 1340341024 25200 # Node ID d084610a89b59d0a3170b4542b8b9cb998897df5 # Parent 95bf956bce5a904aae42d07fcaaf445f2084d97c Automatically update the lists of current games and actions. Add some window.*interval() code to getcurrent() so it will register itself as an interval and clear this interval when the list is not visible (i.e. playing or watching.) It also calls getchoices() if the user is logged in, so that will be updated as well. diff -r 95bf956bce5a -r d084610a89b5 rlgterm.js --- a/rlgterm.js Thu Jun 21 16:05:59 2012 -0700 +++ b/rlgterm.js Thu Jun 21 21:57:04 2012 -0700 @@ -85,6 +85,11 @@ playing: false }; +/* The interval ID for checking the status of current games. */ +var statInterval = null; +/* How frequently to check. */ +var statDelta = 8000; + function writeData(hexstr) { var codenum; var codes = []; @@ -420,9 +425,17 @@ return; } -function getcurrent() { - if (session.id) +function getcurrent(clear) { + if (session.id || clear) { + if (statInterval) { + window.clearInterval(statInterval); + statInterval = null; + } return; + } + if (!statInterval) { + statInterval = window.setInterval(getcurrent, statDelta); + } var req = new XMLHttpRequest(); req.onreadystatechange = function () { if (req.readyState != 4 || req.status != 200) @@ -477,6 +490,8 @@ }; req.open('GET', '/status', true); req.send(); + if (session.lcred) + getchoices(); return; } @@ -711,7 +726,6 @@ document.getElementById("login").style.display = "none"; document.getElementById("register").style.display = "none"; document.getElementById("current").style.display = "block"; - getchoices(); getcurrent(); } else if (mode == "login") {