]> git.pond.sub.org Git - eow/blobdiff - static/eow.js
Add logging package. Handle flush prompts.
[eow] / static / eow.js
index 55fb20c134b5db38691cbeaaf3d57ee7d4113724..19807e408f2a920c9390ee310b130455c26d9be2 100644 (file)
@@ -1,10 +1,19 @@
+function byId(id) {
+  return document.getElementById(id);
+}
+
 function eowOut(output) {
   var t = document.createTextNode(output);
 function eowOut(output) {
   var t = document.createTextNode(output);
-  var p = document.createElement("p");
+  var p = document.createElement("pre");
   p.appendChild(t);
   p.appendChild(t);
-  dojo.byId("output").appendChild(p);
+  byId("output").appendChild(p);
+  window.scrollTo(0, window.scrollMaxY);
 }
 
 }
 
+//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.
 function get_next_update() {
   dojo.xhrGet( {
     // The following URL must match that used to test the server.
@@ -34,7 +43,55 @@ function get_next_update() {
   });
 }
 
   });
 }
 
-function prompt(minutes, btus) {
-  eowOut("[" + minutes + "," + btus + "]: ");
+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();
 }
   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 = "";
+  }
+}