mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-24 03:05:41 +00:00
136 lines
No EOL
4 KiB
JavaScript
136 lines
No EOL
4 KiB
JavaScript
var CloudCommander, $;
|
|
/* object contains terminal jqconsole */
|
|
|
|
(function(){
|
|
"use strict";
|
|
|
|
var cloudcmd = CloudCommander,
|
|
|
|
Util = cloudcmd.Util,
|
|
KeyBinding = cloudcmd.KeyBinding,
|
|
TerminalId,
|
|
Term,
|
|
Hidden = false;
|
|
|
|
cloudcmd.Terminal = {};
|
|
|
|
var JqueryTerminal = {};
|
|
|
|
/**
|
|
* function loads jquery-terminal
|
|
*/
|
|
JqueryTerminal.load = (function(){
|
|
Util.cssLoad({
|
|
src : 'lib/client/terminal/jquery-terminal/jquery.terminal.css'
|
|
});
|
|
|
|
Util.jsload('lib/client/socket.js');
|
|
|
|
var lLoadTerm_func = function(){
|
|
Util.jsload('lib/client/terminal/jquery-terminal/jquery.terminal.js',
|
|
function(){
|
|
JqueryTerminal.init();
|
|
|
|
$(function($, undefined) {
|
|
Term = JqueryTerminal.Term = $('#terminal').terminal(function(command, term){
|
|
term.echo('');
|
|
cloudcmd.Socket.send(command);
|
|
}, {
|
|
greetings : 'Javascript Interpreter',
|
|
prompt : 'cloudcmd> '
|
|
});
|
|
});
|
|
|
|
JqueryTerminal.show();
|
|
});
|
|
};
|
|
|
|
Util.jsload('lib/client/terminal/jquery-terminal/jquery.mousewheel.js',
|
|
lLoadTerm_func);
|
|
});
|
|
|
|
|
|
/**
|
|
* function do basic initialization
|
|
*/
|
|
JqueryTerminal.init = (function(){
|
|
if(!TerminalId){
|
|
var lFM = Util.getById('fm');
|
|
if(lFM)
|
|
TerminalId = Util.anyload({
|
|
name : 'div',
|
|
id : 'terminal',
|
|
className : 'panel',
|
|
parent : lFM
|
|
});
|
|
}
|
|
else
|
|
console.log('Error. Something went wrong FM not found');
|
|
});
|
|
|
|
/**
|
|
* functin show jquery-terminal
|
|
*/
|
|
JqueryTerminal.show = (function(){
|
|
Util.Images.hideLoad();
|
|
|
|
/* only if panel was hided */
|
|
var lHided = Util.hidePanel();
|
|
if(lHided){
|
|
Hidden = false;
|
|
Util.show(TerminalId);
|
|
|
|
KeyBinding.unSet();
|
|
|
|
Term.resume();
|
|
}
|
|
});
|
|
|
|
/**
|
|
* function hide jquery-terminal
|
|
*/
|
|
JqueryTerminal.hide = (function(){
|
|
Hidden = true;
|
|
|
|
Util.hide(TerminalId);
|
|
Util.showPanel();
|
|
|
|
KeyBinding.set();
|
|
|
|
Term.pause();
|
|
});
|
|
|
|
|
|
/**
|
|
* function bind keys
|
|
*/
|
|
cloudcmd.Terminal.Keys = (function(){
|
|
/* loading js and css*/
|
|
Util.jqueryLoad( JqueryTerminal.load );
|
|
|
|
var key_event = function(event){
|
|
/* если клавиши можно обрабатывать */
|
|
if(Hidden &&
|
|
KeyBinding.get() &&
|
|
event.keyCode === cloudcmd.KEY.TRA){
|
|
JqueryTerminal.show();
|
|
event.preventDefault();
|
|
}
|
|
|
|
else if(!Hidden && event.keyCode === cloudcmd.KEY.ESC)
|
|
JqueryTerminal.hide();
|
|
|
|
|
|
};
|
|
|
|
/* добавляем обработчик клавишь */
|
|
if (document.addEventListener)
|
|
document.addEventListener('keydown', key_event, false);
|
|
|
|
else
|
|
document.onkeypress = key_event;
|
|
});
|
|
|
|
cloudcmd.Terminal.JqueryTerminal = JqueryTerminal;
|
|
|
|
})(); |