mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 02:35:49 +00:00
feature(console) jquery-terminal -> jq-console
This commit is contained in:
parent
c3dc0fc6e5
commit
a444b009c2
7 changed files with 149 additions and 167 deletions
|
|
@ -80,6 +80,8 @@ getJSONfromFileTable.
|
|||
|
||||
* fix(socket) log level: debug -> info
|
||||
|
||||
* feature(console) jquery-terminal -> jq-console
|
||||
|
||||
|
||||
2012.04.22, v0.2.0
|
||||
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@
|
|||
"menu",
|
||||
"view",
|
||||
"help",
|
||||
"jq_console",
|
||||
"terminal", {
|
||||
"console", {
|
||||
"name": "storage",
|
||||
"data": [{
|
||||
"name": "DropBox",
|
||||
|
|
|
|||
|
|
@ -6,16 +6,20 @@ var CloudCmd, Util, DOM, $;
|
|||
|
||||
function ConsoleProto(CloudCmd, Util, DOM){
|
||||
var Name = 'Console',
|
||||
Element,
|
||||
Key = CloudCmd.Key,
|
||||
Images = DOM.Images,
|
||||
Console = this;
|
||||
|
||||
this.init = function(pCallBack){
|
||||
var lViewFunc = CloudCmd.View.show || CloudCmd.View;
|
||||
|
||||
Util.loadOnLoad([
|
||||
Console.show,
|
||||
load,
|
||||
CloudCmd.View,
|
||||
lViewFunc,
|
||||
DOM.jqueryLoad,
|
||||
DOM.socketLoad
|
||||
]);
|
||||
|
||||
DOM.Events.addKey(listener);
|
||||
|
|
@ -24,31 +28,42 @@ var CloudCmd, Util, DOM, $;
|
|||
};
|
||||
|
||||
this.show = function(){
|
||||
var lElement;
|
||||
var jqconsole;
|
||||
|
||||
Images.showLoad({top:true});
|
||||
|
||||
lElement = DOM.anyload({
|
||||
name : 'div',
|
||||
className : 'console'
|
||||
});
|
||||
if (!Element) {
|
||||
Element = DOM.anyload({
|
||||
name : 'div',
|
||||
className : 'console'
|
||||
});
|
||||
|
||||
$(lElement).console({
|
||||
promptLabel: '# ',
|
||||
commandValidate : function(line){
|
||||
var lRet = line !== "";
|
||||
|
||||
return lRet;
|
||||
},
|
||||
commandHandle : function(line){
|
||||
return line;
|
||||
},
|
||||
autofocus : true,
|
||||
animateScroll : false,
|
||||
promptHistory : true,
|
||||
});
|
||||
Console.jqconsole =
|
||||
jqconsole = $(Element).jqconsole('', '# ');
|
||||
// Abort prompt on Ctrl+Z.
|
||||
jqconsole.RegisterShortcut('Z', function() {
|
||||
jqconsole.AbortPrompt();
|
||||
handler();
|
||||
});
|
||||
|
||||
// Handle a command.
|
||||
var handler = function(command) {
|
||||
if (command)
|
||||
CloudCmd.Socket.send(command);
|
||||
|
||||
jqconsole.Prompt(true, handler);
|
||||
};
|
||||
|
||||
// Initiate the first prompt.
|
||||
handler();
|
||||
}
|
||||
|
||||
CloudCmd.View.show(lElement);
|
||||
CloudCmd.View.show(Element, function(){
|
||||
var lEvent = DOM.Events.create('mouseup'),
|
||||
lElement = $('.jqconsole-prompt')[0];
|
||||
|
||||
DOM.Events.dispatch(lEvent, lElement);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -59,10 +74,11 @@ var CloudCmd, Util, DOM, $;
|
|||
function load(pCallBack){
|
||||
Util.time(Name + ' load');
|
||||
|
||||
var lDir = CloudCmd.LIBDIRCLIENT + 'terminal/jquery-console/',
|
||||
var lDir = CloudCmd.LIBDIRCLIENT + 'terminal/jq-console/',
|
||||
lFiles = [
|
||||
lDir + 'jquery.console.js',
|
||||
lDir + 'jquery.console.css'
|
||||
lDir + 'jqconsole.js',
|
||||
lDir + 'jqconsole.css',
|
||||
CloudCmd.LIBDIRCLIENT + 'terminal/jquery-terminal/jquery-migrate-1.0.0.js'
|
||||
];
|
||||
|
||||
DOM.anyLoadInParallel(lFiles, function(){
|
||||
|
|
|
|||
|
|
@ -1,138 +0,0 @@
|
|||
var CloudCmd, Util, DOM, $;
|
||||
(function(CloudCmd, Util, DOM){
|
||||
'use strict';
|
||||
|
||||
CloudCmd.Jq_console = new ConsoleProto(CloudCmd, Util, DOM);
|
||||
|
||||
function ConsoleProto(CloudCmd, Util, DOM){
|
||||
var Name = 'Console',
|
||||
Element,
|
||||
Key = CloudCmd.Key,
|
||||
Images = DOM.Images,
|
||||
Console = this;
|
||||
|
||||
this.init = function(pCallBack){
|
||||
var lViewFunc = CloudCmd.View.show || CloudCmd.View;
|
||||
|
||||
Util.loadOnLoad([
|
||||
Console.show,
|
||||
load,
|
||||
lViewFunc,
|
||||
DOM.jqueryLoad,
|
||||
]);
|
||||
|
||||
DOM.Events.addKey(listener);
|
||||
|
||||
delete Console.init;
|
||||
};
|
||||
|
||||
this.show = function(){
|
||||
var jqconsole;
|
||||
|
||||
Images.showLoad({top:true});
|
||||
|
||||
if (!Element) {
|
||||
Element = DOM.anyload({
|
||||
name : 'div',
|
||||
className : 'console'
|
||||
});
|
||||
|
||||
jqconsole = $(Element).jqconsole('header', 'JS> ');
|
||||
// Abort prompt on Ctrl+Z.
|
||||
jqconsole.RegisterShortcut('Z', function() {
|
||||
jqconsole.AbortPrompt();
|
||||
handler();
|
||||
});
|
||||
|
||||
// Move to line start Ctrl+A.
|
||||
jqconsole.RegisterShortcut('A', function() {
|
||||
jqconsole.MoveToStart();
|
||||
handler();
|
||||
});
|
||||
|
||||
// Move to line end Ctrl+E.
|
||||
jqconsole.RegisterShortcut('E', function() {
|
||||
jqconsole.MoveToEnd();
|
||||
handler();
|
||||
});
|
||||
|
||||
jqconsole.RegisterMatching('{', '}', 'brace');
|
||||
jqconsole.RegisterMatching('(', ')', 'paran');
|
||||
jqconsole.RegisterMatching('[', ']', 'bracket');
|
||||
// Handle a command.
|
||||
var handler = function(command) {
|
||||
if (command) {
|
||||
try {
|
||||
jqconsole.Write('==> ' + window.eval(command) + '\n');
|
||||
} catch (e) {
|
||||
jqconsole.Write('ERROR: ' + e.message + '\n');
|
||||
}
|
||||
}
|
||||
jqconsole.Prompt(true, handler, function(command) {
|
||||
// Continue line if can't compile the command.
|
||||
try {
|
||||
Function(command);
|
||||
} catch (e) {
|
||||
if (/[\[\{\(]$/.test(command)) {
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
};
|
||||
|
||||
// Initiate the first prompt.
|
||||
handler();
|
||||
}
|
||||
|
||||
CloudCmd.View.show(Element, function(){
|
||||
var lEvent = DOM.Events.create('mouseup'),
|
||||
lElement = $('.jqconsole-prompt')[0];
|
||||
|
||||
DOM.Events.dispatch(lEvent, lElement);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
this.hide = function(){
|
||||
CloudCmd.View.hide();
|
||||
};
|
||||
|
||||
function load(pCallBack){
|
||||
Util.time(Name + ' load');
|
||||
|
||||
var lDir = CloudCmd.LIBDIRCLIENT + 'terminal/jq-console/',
|
||||
lFiles = [
|
||||
lDir + 'jqconsole.js',
|
||||
lDir + 'jqconsole.css',
|
||||
CloudCmd.LIBDIRCLIENT + 'terminal/jquery-terminal/jquery-migrate-1.0.0.js'
|
||||
];
|
||||
|
||||
DOM.anyLoadInParallel(lFiles, function(){
|
||||
console.timeEnd(Name + ' load');
|
||||
|
||||
Util.exec(pCallBack);
|
||||
});
|
||||
}
|
||||
|
||||
function listener(pEvent){
|
||||
var lF10 = Key.F10,
|
||||
lESC = Key.ESC,
|
||||
lIsBind = Key.isBind(),
|
||||
lKey = pEvent.keyCode;
|
||||
|
||||
switch(lKey){
|
||||
case lF10:
|
||||
Console.show();
|
||||
break;
|
||||
case lESC:
|
||||
Console.hide();
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
})(CloudCmd, Util, DOM);
|
||||
93
lib/client/jquery-console.js
vendored
Normal file
93
lib/client/jquery-console.js
vendored
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
var CloudCmd, Util, DOM, $;
|
||||
(function(CloudCmd, Util, DOM){
|
||||
'use strict';
|
||||
|
||||
CloudCmd.Console = new ConsoleProto(CloudCmd, Util, DOM);
|
||||
|
||||
function ConsoleProto(CloudCmd, Util, DOM){
|
||||
var Name = 'Console',
|
||||
Key = CloudCmd.Key,
|
||||
Images = DOM.Images,
|
||||
Console = this;
|
||||
|
||||
this.init = function(pCallBack){
|
||||
Util.loadOnLoad([
|
||||
Console.show,
|
||||
load,
|
||||
CloudCmd.View,
|
||||
DOM.jqueryLoad,
|
||||
]);
|
||||
|
||||
DOM.Events.addKey(listener);
|
||||
|
||||
delete Console.init;
|
||||
};
|
||||
|
||||
this.show = function(){
|
||||
var lElement;
|
||||
|
||||
Images.showLoad({top:true});
|
||||
|
||||
lElement = DOM.anyload({
|
||||
name : 'div',
|
||||
className : 'console'
|
||||
});
|
||||
|
||||
$(lElement).console({
|
||||
promptLabel: '# ',
|
||||
commandValidate : function(line){
|
||||
var lRet = line !== "";
|
||||
|
||||
return lRet;
|
||||
},
|
||||
commandHandle : function(line){
|
||||
return line;
|
||||
},
|
||||
autofocus : true,
|
||||
animateScroll : false,
|
||||
promptHistory : true,
|
||||
});
|
||||
|
||||
CloudCmd.View.show(lElement);
|
||||
};
|
||||
|
||||
|
||||
this.hide = function(){
|
||||
CloudCmd.View.hide();
|
||||
};
|
||||
|
||||
function load(pCallBack){
|
||||
Util.time(Name + ' load');
|
||||
|
||||
var lDir = CloudCmd.LIBDIRCLIENT + 'terminal/jquery-console/',
|
||||
lFiles = [
|
||||
lDir + 'jquery.console.js',
|
||||
lDir + 'jquery.console.css'
|
||||
];
|
||||
|
||||
DOM.anyLoadInParallel(lFiles, function(){
|
||||
console.timeEnd(Name + ' load');
|
||||
|
||||
Util.exec(pCallBack);
|
||||
});
|
||||
}
|
||||
|
||||
function listener(pEvent){
|
||||
var lF10 = Key.F10,
|
||||
lESC = Key.ESC,
|
||||
lIsBind = Key.isBind(),
|
||||
lKey = pEvent.keyCode;
|
||||
|
||||
switch(lKey){
|
||||
case lF10:
|
||||
Console.show();
|
||||
break;
|
||||
case lESC:
|
||||
Console.hide();
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
})(CloudCmd, Util, DOM);
|
||||
|
|
@ -170,7 +170,7 @@ var CloudCmd, Util, DOM;
|
|||
|
||||
case Key.TRA:
|
||||
DOM.Images.showLoad({top: true});
|
||||
Util.exec(CloudCmd.Terminal);
|
||||
Util.exec(CloudCmd.Console);
|
||||
break;
|
||||
|
||||
case Key.SPACE:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/* module make possible connectoin thrue socket.io on a client */
|
||||
var CloudCmd, Util, DOM, io;
|
||||
var CloudCmd, Util, DOM, jqconsole, io;
|
||||
(function(CloudCmd, Util, DOM){
|
||||
'use strict';
|
||||
|
||||
|
|
@ -50,13 +50,23 @@ var CloudCmd, Util, DOM, io;
|
|||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function outToTerminal(pMsg){
|
||||
var lResult, lTerm;
|
||||
|
||||
Terminal = getTerminal();
|
||||
if(Terminal)
|
||||
lTerm = Terminal.Term;
|
||||
else {
|
||||
var lEcho = function(pResult){
|
||||
CloudCmd.Console.jqconsole.Write(pResult);
|
||||
};
|
||||
|
||||
lTerm = {
|
||||
echo : lEcho,
|
||||
error : lEcho
|
||||
};
|
||||
}
|
||||
|
||||
if(lTerm){
|
||||
var lStdout,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue