X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/0dad430c014913f47e900590cae35bf238a625e5..b6de14922fb1565d0d1f4a44b1dacc3a95e265a9:/code/static/ajaxterm/ajaxterm.js diff --git a/code/static/ajaxterm/ajaxterm.js b/code/static/ajaxterm/ajaxterm.js index 9089a96..c4501b4 100644 --- a/code/static/ajaxterm/ajaxterm.js +++ b/code/static/ajaxterm/ajaxterm.js @@ -17,7 +17,6 @@ ajaxterm.Terminal_ctor=function(id,machine_id) { var div=document.getElementById(id); var dstat=document.createElement('pre'); var sled=document.createElement('span'); - var opt_get=document.createElement('a'); var opt_color=document.createElement('a'); var opt_paste=document.createElement('a'); var sdebug=document.createElement('span'); @@ -36,10 +35,6 @@ ajaxterm.Terminal_ctor=function(id,machine_id) { dstat.appendChild(opt); dstat.appendChild(document.createTextNode(' ')); } - function do_get(event) { - opt_get.className=(opt_get.className=='off')?'on':'off'; - debug('GET '+opt_get.className); - } function do_color(event) { var o=opt_color.className=(opt_color.className=='off')?'on':'off'; if(o=='on') @@ -107,14 +102,7 @@ ajaxterm.Terminal_ctor=function(id,machine_id) { query=query+"&force=1"; force=false; } - if(opt_get.className=='on') { - r.open("GET",base_path+"?"+query,true); - if(ie) { - r.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); - } - } else { - r.open("POST",base_path,true); - } + r.open("POST",base_path,true); r.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); r.onreadystatechange = function () { // debug("xhr:"+((new Date).getTime())+" state:"+r.readyState+" status:"+r.status+" statusText:"+r.statusText); @@ -145,11 +133,7 @@ ajaxterm.Terminal_ctor=function(id,machine_id) { } } error_timeout=window.setTimeout(error,5000); - if(opt_get.className=='on') { - r.send(null); - } else { - r.send(query); - } + r.send(query); } } function queue(s) { @@ -257,23 +241,27 @@ ajaxterm.Terminal_ctor=function(id,machine_id) { dstat.appendChild(document.createTextNode(' ')); opt_add(opt_color,'Colors'); opt_color.className='on'; - opt_add(opt_get,'GET'); opt_add(opt_paste,'Paste'); dstat.appendChild(sdebug); dstat.className='stat'; div.appendChild(dstat); div.appendChild(dterm); if(opt_color.addEventListener) { - opt_get.addEventListener('click',do_get,true); opt_color.addEventListener('click',do_color,true); opt_paste.addEventListener('click',do_paste,true); } else { - opt_get.attachEvent("onclick", do_get); opt_color.attachEvent("onclick", do_color); opt_paste.attachEvent("onclick", do_paste); } - document.onkeypress=keypress; - document.onkeydown=keydown; + // If tabIndex works, only grab keyboard events when terminal is focused + // Otherwise, grab from whole document (e.g. in Safari). + var focus_element = document; + if(typeof $('term').tabIndex != "undefined") { + focus_element = $('term'); + focus_element.focus(); + } + focus_element.onkeypress=keypress; + focus_element.onkeydown=keydown; force=true; timeout=window.setTimeout(update,100); }