mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-07-18 17:05:17 +00:00
added functions DOM.addKeyListener and Util.loadOnLoad
This commit is contained in:
parent
640197a52e
commit
b830010283
11 changed files with 205 additions and 196 deletions
|
|
@ -1,7 +1,5 @@
|
|||
var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
|
||||
/* object contains editors CodeMirror
|
||||
* and later will be Ace
|
||||
*/
|
||||
/* object contains editors CodeMirror */
|
||||
(function(){
|
||||
"use strict";
|
||||
var cloudcmd = CloudCommander,
|
||||
|
|
@ -27,8 +25,12 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
|
|||
|
||||
/**
|
||||
* function initialize CodeMirror
|
||||
* @param {value, callback}
|
||||
*/
|
||||
function initCodeMirror(pValue){
|
||||
function initCodeMirror(pData){
|
||||
if(!pData)
|
||||
pData = {};
|
||||
|
||||
if(!FM)
|
||||
FM = DOM.getById('fm');
|
||||
|
||||
|
|
@ -41,15 +43,17 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
|
|||
|
||||
CodeMirrorEditor.CodeMirror = new CodeMirror(CodeMirrorElement,{
|
||||
mode : 'javascript',
|
||||
value : pValue,
|
||||
value : pData.data,
|
||||
theme : 'night',
|
||||
lineNumbers : true,
|
||||
//переносим длинные строки
|
||||
//переносим длинные строки
|
||||
lineWrapping: false,
|
||||
autofocus : true,
|
||||
extraKeys: {
|
||||
//Сохранение
|
||||
"Esc": CodeMirrorEditor.hide
|
||||
'Esc': function(){
|
||||
Util.exec(pData.callback);
|
||||
}
|
||||
},
|
||||
readOnly : ReadOnly
|
||||
});
|
||||
|
|
@ -58,7 +62,7 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
|
|||
/**
|
||||
* function loads CodeMirror js and css files
|
||||
*/
|
||||
function load(){
|
||||
function load(pCallBack){
|
||||
console.time('codemirror load');
|
||||
var lDir = CodeMirrorEditor.dir;
|
||||
|
||||
|
|
@ -88,8 +92,8 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
|
|||
|
||||
function(){
|
||||
console.timeEnd('codemirror load');
|
||||
CodeMirrorLoaded = true;
|
||||
CodeMirrorEditor.show();
|
||||
CodeMirrorLoaded = true;
|
||||
Util.exec(pCallBack);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
@ -97,13 +101,7 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
|
|||
/**
|
||||
* function shows CodeMirror editor
|
||||
*/
|
||||
CodeMirrorEditor.show = function(pReadOnly){
|
||||
if( Util.isBoolean(pReadOnly) )
|
||||
ReadOnly = pReadOnly;
|
||||
|
||||
/* if CodeMirrorEditor is not loaded - loading him */
|
||||
if(!CodeMirrorLoaded)
|
||||
return load();
|
||||
CodeMirrorEditor.show = function(pCallBack){
|
||||
|
||||
/* if CodeMirror function show already
|
||||
* called do not call it again
|
||||
|
|
@ -118,7 +116,7 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
|
|||
lA = lA.href;
|
||||
|
||||
/* убираем адрес хоста*/
|
||||
lA = '/' + lA.replace(document.location.href,'');
|
||||
lA = lA.replace(cloudcmd.HOST, '');
|
||||
|
||||
/* checking is this link is to directory */
|
||||
var lSize = DOM.getByClass('size', lCurrentFile);
|
||||
|
|
@ -155,17 +153,17 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
|
|||
return DOM.Images.showError(jqXHR);
|
||||
},
|
||||
|
||||
success:function(data, textStatus, jqXHR){
|
||||
success:function(data, textStatus, jqXHR){
|
||||
/* if we got json - show it */
|
||||
if(typeof data === 'object')
|
||||
data = JSON.stringify(data, null, 4);
|
||||
|
||||
var lHided = DOM.hidePanel();
|
||||
if(lHided){
|
||||
initCodeMirror(data);
|
||||
Util.exec(pCallBack, data);
|
||||
|
||||
/* removing keyBinding if set */
|
||||
KeyBinding.unSet();
|
||||
KeyBinding.unSet();
|
||||
}
|
||||
|
||||
DOM.Images.hideLoad();
|
||||
|
|
@ -194,44 +192,39 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
|
|||
cloudcmd.Editor.Keys = function(pReadOnly){
|
||||
ReadOnly = pReadOnly;
|
||||
|
||||
/* loading js and css of CodeMirror */
|
||||
CodeMirrorEditor.show();
|
||||
var lShowCodemirror = [
|
||||
CodeMirrorEditor.hide,
|
||||
initCodeMirror,
|
||||
CodeMirrorEditor.show,
|
||||
load
|
||||
];
|
||||
Util.loadOnLoad( lShowCodemirror );
|
||||
lShowCodemirror.pop();
|
||||
|
||||
var key_event = function(pEvent){
|
||||
|
||||
var lKeyListener = function(pEvent){
|
||||
/* если клавиши можно обрабатывать */
|
||||
if( KeyBinding.get() ){
|
||||
/* if f4 or f3 pressed */
|
||||
var lF3 = cloudcmd.KEY.F3,
|
||||
lF4 = cloudcmd.KEY.F4,
|
||||
lShow = Util.bind( CodeMirrorEditor.show, CodeMirrorEditor );
|
||||
lF4 = cloudcmd.KEY.F4;
|
||||
|
||||
if(!pEvent.shiftKey)
|
||||
switch(pEvent.keyCode)
|
||||
{
|
||||
case lF4:
|
||||
ReadOnly = false;
|
||||
lShow();
|
||||
Util.loadOnLoad( lShowCodemirror );
|
||||
break;
|
||||
case lF3:
|
||||
ReadOnly = true;
|
||||
lShow();
|
||||
Util.loadOnLoad( lShowCodemirror );
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/* добавляем обработчик клавишь */
|
||||
if (document.addEventListener)
|
||||
document.addEventListener('keydown', key_event, false);
|
||||
|
||||
else{
|
||||
var lFunc = document.onkeydown;
|
||||
document.onkeydown = function(){
|
||||
Util.exec(lFunc);
|
||||
key_event();
|
||||
};
|
||||
}
|
||||
DOM.addKeyListener(lKeyListener);
|
||||
};
|
||||
|
||||
cloudcmd.Editor.CodeMirror = CodeMirrorEditor;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue