X-Git-Url: http://git.pond.sub.org/?p=eow;a=blobdiff_plain;f=static%2Feow.js;h=19807e408f2a920c9390ee310b130455c26d9be2;hp=f85607584d06d431ba35b1851bb9cdbf19b9fc5a;hb=526dbd606f295eed0d201b9e24e114c89c2d80f2;hpb=0efe5441c5ae67bf40daf04ea66538a946f2f0ad diff --git a/static/eow.js b/static/eow.js index f856075..19807e4 100644 --- a/static/eow.js +++ b/static/eow.js @@ -1,17 +1,27 @@ +function byId(id) { + return document.getElementById(id); +} + function eowOut(output) { var t = document.createTextNode(output); - var p = document.createElement("p"); + var p = document.createElement("pre"); p.appendChild(t); - dojo.byId("output").appendChild(p); + byId("output").appendChild(p); + window.scrollTo(0, window.scrollMaxY); } -function hello() { +//t = window.setTimeout(f, 10000); +//window.clearTimeout(t) +//e = document.getElementById(id) + +function get_next_update() { dojo.xhrGet( { // The following URL must match that used to test the server. - url: "/eow/static/ajax.txt", + url: "/eow/update", handleAs: "javascript", + //handleAs: "text", - timeout: 5000, // Time in milliseconds + timeout: 30000, // Time in milliseconds // The LOAD function will be called on a successful response. load: function(response, ioArgs) { @@ -21,9 +31,67 @@ function hello() { // The ERROR function will be called in an error case. error: function(response, ioArgs) { - console.error("HTTP status code: ", ioArgs.xhr.status); - return response; + if (response.dojoType == "timeout") { + ioArgs.xhr.abort(); + get_next_update(); + return response; + } + + console.error("HTTP status code: ", ioArgs.xhr.status); + return response; } }); } +function submit_cmdline(cmdline_form) { + dojo.xhrGet( { + // The following URL must match that used to test the server. + url: "/eow/command", + handleAs: "text", + + timeout: 30000, // Time in milliseconds + + // The LOAD function will be called on a successful response. + load: function(response, ioArgs) { + console.log(response); + return response; + }, + + // The ERROR function will be called in an error case. + error: function(response, ioArgs) { + if (response.dojoType == "timeout") { + ioArgs.xhr.abort(); + return response; + } + + console.error("HTTP status code: ", ioArgs.xhr.status); + return response; + }, + + form: cmdline_form + }); +} + +function prompt(p) { + byId("prompt").textContent = p; + get_next_update(); +} + +function msg(m) { + eowOut(m); + get_next_update(); +} + +function setup_client() { + var input = byId("inputfield"); + input.focus(); +} + +function inputfield_keyup(e) { + if (e.keyCode == 13) { // Enter + eowOut(byId("prompt").textContent + e.target.value); + submit_cmdline(e.target.form.id); + window.scrollTo(0, window.scrollMaxY); + e.target.value = ""; + } +}