return r
def dumplatin1(self):
return self.dump().translate(self.trl1)
- def dumphtml(self,color=1):
+ def dumphtml(self,color=1,force=False):
h=self.height
w=self.width
r=""
if i%w==w-1:
span+='\n'
r='<?xml version="1.0" encoding="ISO-8859-1"?><pre class="term">%s</pre>'%r
- if self.last_html==r:
+ if self.last_html==r and not force:
return '<?xml version="1.0"?><idem></idem>'
else:
self.last_html=r
os.write(fd,s)
except (IOError,OSError):
self.proc_kill(fd)
- def dump(self,fd,color=1):
+ def dump(self,fd,color=1,force=False):
try:
- return self.proc[fd]['term'].dumphtml(color)
+ return self.proc[fd]['term'].dumphtml(color, force)
except KeyError:
return False
def loop(self):
return d
@cherrypy.expose
- def at(self, machine_id, k=None, c=0):
+ def at(self, machine_id, k=None, c=0, force=0):
machine = validation.Validate(cherrypy.request.login, cherrypy.request.state, machine_id=machine_id).machine
if machine_id in self.atsessions:
term = self.atsessions[machine_id]
if k:
self.atmulti.proc_write(term,k)
time.sleep(0.002)
- dump=self.atmulti.dump(term,c)
+ dump=self.atmulti.dump(term,c,int(force))
cherrypy.response.headers['Content-Type']='text/xml'
if isinstance(dump,str):
return dump
else:
+ print "Removing session for", machine_id
del self.atsessions[machine_id]
return '<?xml version="1.0"?><idem></idem>'
var keybuf=[];
var sending=0;
var rmax=1;
+ var force=true;
var div=document.getElementById(id);
var dstat=document.createElement('pre');
send+=keybuf.pop();
}
var query=query1+send;
+ if (force) {
+ query=query+"&force=1";
+ force=false;
+ }
if(opt_get.className=='on') {
r.open("GET",base_path+"?"+query,true);
if(ie) {
}
document.onkeypress=keypress;
document.onkeydown=keydown;
+ force=true;
timeout=window.setTimeout(update,100);
}
init();