// Generated by CoffeeScript 1.6.3 var cols, rows, term, ws; term = ws = null; cols = rows = null; $(function() { var ws_url; ws_url = 'ws://' + document.location.host + '/ws'; if (location.pathname.indexOf('/wd') === 0) { ws_url += location.pathname.slice(3); } ws = new WebSocket(ws_url); ws.onopen = function() { console.log("WebSocket open", arguments); term = new Terminal({ visualBell: true, screenKeys: true, scrollback: -1 }); term.on("data", function(data) { return ws.send('SH|' + data); }); term.on("title", function(title) { return document.title = title; }); term.open($('main').get(0)); $('.terminal').attr('style', ''); return $(window).trigger('resize'); }; ws.onclose = function() { if (term) { term.destroy(); } console.log("WebSocket closed", arguments); return open('', '_self').close(); }; ws.onerror = function() { return console.log("WebSocket error", arguments); }; ws.onmessage = function(event) { return term.write(event.data); }; return $(window).resize(function() { var $main, $termtest, $test, eh, ew, h, w; $main = $('main'); $termtest = $('
').addClass('terminal'); $test = $('
').text('0123456789'); $termtest.append($test); $main.append($termtest); eh = $test.outerHeight(); $test.css({ display: 'inline-block' }); ew = $test.outerWidth() / 10; $termtest.remove(); w = $main.outerWidth(); h = $main.outerHeight(); cols = Math.floor(w / ew) - 1; rows = Math.floor(h / eh); console.log("Computed " + cols + " cols and " + rows + " rows from main size " + w + ", " + h + " and div " + ew + ", " + eh); term.resize(cols, rows); return ws.send("RS|" + cols + "," + rows); }); });