mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 10:45:47 +00:00
fixed styles in codemirror
This commit is contained in:
parent
60caa5f2c8
commit
be365fdefd
3 changed files with 2 additions and 445 deletions
|
|
@ -875,8 +875,8 @@ CloudClient.KeyBinding = (function(){
|
|||
CloudClient.Editor = (function(pCurrentFile, pIsReadOnly) {
|
||||
/* loading CloudMirror plagin */
|
||||
Util.jsload(CloudClient.LIBDIRCLIENT +
|
||||
'editor.js',{
|
||||
//'editor/ace_editor.js',{
|
||||
'editor/_codemirror.js',{
|
||||
//'editor/_ace.js',{
|
||||
onload:(function(){
|
||||
cloudcmd.Editor.Keys(pCurrentFile, pIsReadOnly);
|
||||
})
|
||||
|
|
|
|||
|
|
@ -1,231 +0,0 @@
|
|||
var CloudCommander, CloudFunc, CodeMirror;
|
||||
/* object contains editors CodeMirror
|
||||
* and later will be Ace
|
||||
*/
|
||||
(function(){
|
||||
"use strict";
|
||||
var cloudcmd = CloudCommander,
|
||||
Util = CloudCommander.Util,
|
||||
KeyBinding = CloudCommander.KeyBinding,
|
||||
CodeMirrorEditor = {},
|
||||
FM,
|
||||
CodeMirrorElement,
|
||||
CodeMirrorLoaded = false,
|
||||
/* indicator says CodeMirror still loads */
|
||||
Loading = false,
|
||||
ReadOnly = false;
|
||||
|
||||
cloudcmd.Editor = {
|
||||
get : (function(){
|
||||
return this.CodeMirror;
|
||||
})
|
||||
};
|
||||
|
||||
|
||||
/* private functions */
|
||||
function initCodeMirror(pValue){
|
||||
if(!FM)
|
||||
FM = Util.getById('fm');
|
||||
|
||||
CodeMirrorElement = Util.anyload({
|
||||
name : 'div',
|
||||
id : 'CodeMirrorEditor',
|
||||
className : 'panel',
|
||||
parent : FM
|
||||
});
|
||||
|
||||
CodeMirrorEditor.CodeMirror = new CodeMirror(CodeMirrorElement,{
|
||||
mode : 'javascript',
|
||||
value : pValue,
|
||||
theme : 'night',
|
||||
lineNumbers : true,
|
||||
//переносим длинные строки
|
||||
lineWrapping: false,
|
||||
autofocus : true,
|
||||
extraKeys: {
|
||||
//Сохранение
|
||||
"Esc": CodeMirrorEditor.hide
|
||||
},
|
||||
readOnly : ReadOnly
|
||||
});
|
||||
}
|
||||
|
||||
cloudcmd.Editor.dir = 'lib/client/editor/';
|
||||
CodeMirrorEditor.dir = cloudcmd.Editor.dir + 'codemirror/';
|
||||
|
||||
/* function loads CodeMirror js and css files */
|
||||
CodeMirrorEditor.load = (function(){
|
||||
/* function loads css files of CodeMirror */
|
||||
var loadAll = function() {
|
||||
Util.cssLoad([
|
||||
{ src : CodeMirrorEditor.dir + 'codemirror.css'},
|
||||
{ src : CodeMirrorEditor.dir + 'theme/night.css'}
|
||||
]);
|
||||
|
||||
|
||||
Util.cssSet({id:'editor',
|
||||
inner : '.CodeMirror{' +
|
||||
'font-family :\'Droid Sans Mono\';' +
|
||||
'font-size :15px;' +
|
||||
'padding :20px 0 0 0;' +
|
||||
/* codemirror v3 */
|
||||
//'height : ' + cloudcmd.HEIGHT + 'px' +
|
||||
'}' +
|
||||
'.CodeMirror-scroll{' +
|
||||
'height : ' + (cloudcmd.HEIGHT-40) + 'px' +
|
||||
'}' //+
|
||||
/* codemirror v3 */
|
||||
//'#CodeMirrorEditor{' +
|
||||
// 'padding :20px 20px 20px 20px;' +
|
||||
// '}'
|
||||
});
|
||||
|
||||
Util.jsload(CodeMirrorEditor.dir +
|
||||
'mode/javascript.js', function(){
|
||||
CodeMirrorLoaded = true;
|
||||
CodeMirrorEditor.show();
|
||||
});
|
||||
};
|
||||
|
||||
/* load CodeMirror main module */
|
||||
Util.jsload(CodeMirrorEditor.dir + 'codemirror.js', loadAll);
|
||||
});
|
||||
|
||||
/* function shows CodeMirror editor */
|
||||
CodeMirrorEditor.show = (function(){
|
||||
/* if CodeMirrorEditor is not loaded - loading him */
|
||||
if(!CodeMirrorLoaded)
|
||||
return this.load();
|
||||
|
||||
/* if CodeMirror function show already
|
||||
* called do not call it again
|
||||
* if f4 key pressed couple times
|
||||
*/
|
||||
if(Loading)
|
||||
return;
|
||||
|
||||
/* getting link */
|
||||
var lCurrentFile = Util.getCurrentFile(),
|
||||
lA = Util.getCurrentLink(lCurrentFile);
|
||||
lA = lA.href;
|
||||
|
||||
/* убираем адрес хоста*/
|
||||
lA = '/' + lA.replace(document.location.href,'');
|
||||
|
||||
/* checking is this link is to directory */
|
||||
var lSize = Util.getByClass('size', lCurrentFile);
|
||||
if(lSize){
|
||||
lSize = lSize[0].textContent;
|
||||
|
||||
/* if directory - load json
|
||||
* not html data
|
||||
*/
|
||||
if (lSize === '<dir>'){
|
||||
var lIndexOfNOJS = lA.indexOf(CloudFunc.NOJS);
|
||||
if (lIndexOfNOJS === CloudFunc.FS.length){
|
||||
lA = lA.replace(CloudFunc.NOJS, '');
|
||||
/* when folder view
|
||||
* is no need to edit
|
||||
* data
|
||||
*/
|
||||
ReadOnly = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading = true;
|
||||
setTimeout(function(){
|
||||
Loading = false;
|
||||
},
|
||||
400);
|
||||
|
||||
/* reading data from current file */
|
||||
Util.ajax({
|
||||
url:lA,
|
||||
error: function(jqXHR, textStatus, errorThrown){
|
||||
Loading = false;
|
||||
return Util.Images.showError(jqXHR);
|
||||
},
|
||||
|
||||
success:function(data, textStatus, jqXHR){
|
||||
/* if we got json - show it */
|
||||
if(typeof data === 'object')
|
||||
data = JSON.stringify(data, null, 4);
|
||||
|
||||
initCodeMirror(data);
|
||||
|
||||
/* removing keyBinding if set */
|
||||
KeyBinding.unSet();
|
||||
|
||||
Util.hidePanel();
|
||||
Util.Images.hideLoad();
|
||||
|
||||
Loading = false;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
/* function hides CodeMirror editor */
|
||||
CodeMirrorEditor.hide = (function() {
|
||||
var lElem = CodeMirrorElement;
|
||||
KeyBinding.set();
|
||||
|
||||
if(lElem && FM)
|
||||
FM.removeChild(lElem);
|
||||
|
||||
Util.showPanel();
|
||||
});
|
||||
|
||||
cloudcmd.Editor.Keys = (function(pIsReadOnly){
|
||||
ReadOnly = pIsReadOnly;
|
||||
|
||||
var lThis = this.CodeMirror;
|
||||
/* loading js and css of CodeMirror */
|
||||
lThis.show();
|
||||
|
||||
var key_event = function(pEvent){
|
||||
|
||||
/* если клавиши можно обрабатывать */
|
||||
if( KeyBinding.get() ){
|
||||
/* if f4 or f3 pressed */
|
||||
var lF3 = cloudcmd.KEY.F3;
|
||||
var lF4 = cloudcmd.KEY.F4;
|
||||
//var lShow = lThis.show.bind(lThis);
|
||||
var lShow = Util.bind(lThis.show, lThis);
|
||||
|
||||
if(!pEvent.shiftKey){
|
||||
switch(pEvent.keyCode)
|
||||
{
|
||||
case lF4:
|
||||
ReadOnly = false;
|
||||
lShow();
|
||||
break;
|
||||
case lF3:
|
||||
ReadOnly = true;
|
||||
lShow();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/* добавляем обработчик клавишь */
|
||||
if (document.addEventListener)
|
||||
document.addEventListener('keydown', key_event, false);
|
||||
|
||||
else{
|
||||
var lFunc;
|
||||
if(typeof document.onkeydown === 'function')
|
||||
lFunc = document.onkeydown;
|
||||
|
||||
document.onkeydown = function(){
|
||||
if(lFunc)
|
||||
lFunc();
|
||||
|
||||
key_event();
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
cloudcmd.Editor.CodeMirror = CodeMirrorEditor;
|
||||
})();
|
||||
|
|
@ -1,212 +0,0 @@
|
|||
var CloudCommander, CloudFunc, ace;
|
||||
/* object contains editors Ace
|
||||
* and later will be Ace
|
||||
*/
|
||||
(function(){
|
||||
"use strict";
|
||||
var cloudcmd = CloudCommander,
|
||||
Util = CloudCommander.Util,
|
||||
KeyBinding = CloudCommander.KeyBinding,
|
||||
AceEditor = {},
|
||||
AceLoaded = false,
|
||||
ReadOnly = false,
|
||||
AceElement,
|
||||
FM;
|
||||
|
||||
CloudCommander.Editor = {
|
||||
get : (function(){
|
||||
return this.Ace;
|
||||
})
|
||||
};
|
||||
|
||||
cloudcmd.Editor.dir = 'lib/client/editor/';
|
||||
AceEditor.dir = cloudcmd.Editor.dir + 'ace/';
|
||||
|
||||
|
||||
/* private functions */
|
||||
function initCodeMirror(pValue){
|
||||
if(!FM)
|
||||
FM = Util.getById('fm');
|
||||
|
||||
AceElement = Util.anyload({
|
||||
name : 'div',
|
||||
id : 'CodeMirrorEditor',
|
||||
className : 'panel',
|
||||
parent : FM
|
||||
});
|
||||
|
||||
var editor = ace.edit("AceEditor");
|
||||
|
||||
editor.setTheme("ace/theme/tomorrow_night_blue");
|
||||
editor.getSession().setMode("ace/mode/javascript");
|
||||
|
||||
/*
|
||||
editor.commands.addCommand({
|
||||
name : 'new_command',
|
||||
//bindKey : {win: 'Esc', mac: 'Esc'},
|
||||
bindKey: {win: 'Ctrl-M', mac: 'Command-M'},
|
||||
exec : function(pEditor){
|
||||
lThis.hide();
|
||||
}
|
||||
});
|
||||
*/
|
||||
|
||||
editor.setReadOnly(ReadOnly);
|
||||
|
||||
editor.setValue(pValue);
|
||||
}
|
||||
|
||||
/* indicator says Ace still loads */
|
||||
AceEditor.loading = false;
|
||||
|
||||
/* function loads Ace js and css files */
|
||||
AceEditor.load = (function(){
|
||||
Util.cssSet({id:'editor',
|
||||
inner : '#AceEditor{' +
|
||||
'font-size : 15px;' +
|
||||
'padding : 0 0 0 0;' +
|
||||
'}'
|
||||
});
|
||||
|
||||
/* load Ace main module */
|
||||
Util.jsload(AceEditor.dir + 'ace.js', function() {
|
||||
Util.jsload(AceEditor.dir + 'mode-javascript.js',
|
||||
function(){
|
||||
AceLoaded = true;
|
||||
AceEditor.show();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
/* function shows Ace editor */
|
||||
AceEditor.show = (function(){
|
||||
/* if Ace function show already
|
||||
* called do not call it again
|
||||
* if f4 key pressed couple times
|
||||
*/
|
||||
if(this.loading)
|
||||
return;
|
||||
|
||||
if(!AceLoaded){
|
||||
return AceEditor.load();
|
||||
}
|
||||
|
||||
/* getting link */
|
||||
var lCurrentFile = Util.getCurrentFile(),
|
||||
lA = Util.getCurrentLink(lCurrentFile);
|
||||
lA = lA.href;
|
||||
|
||||
/* убираем адрес хоста*/
|
||||
lA = '/' + lA.replace(document.location.href,'');
|
||||
|
||||
/* checking is this link is to directory */
|
||||
var lSize = Util.getByClass('size', lCurrentFile);
|
||||
if(lSize){
|
||||
lSize = lSize[0].textContent;
|
||||
|
||||
/* if directory - load json
|
||||
* not html data
|
||||
*/
|
||||
if (lSize === '<dir>'){
|
||||
if (lA.indexOf(CloudFunc.NOJS) ===
|
||||
CloudFunc.FS.length) {
|
||||
lA = lA.replace(CloudFunc.NOJS, '');
|
||||
/* when folder view
|
||||
* is no need to edit
|
||||
* data
|
||||
*/
|
||||
ReadOnly = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
setTimeout(function(){
|
||||
lThis.loading = false;},
|
||||
400);
|
||||
|
||||
/* reading data from current file */
|
||||
Util.ajax({
|
||||
url:lA,
|
||||
error: (function(jqXHR, textStatus, errorThrown){
|
||||
lThis.loading = false;
|
||||
|
||||
return Util.Images.showError(jqXHR);
|
||||
}),
|
||||
|
||||
success:function(data, textStatus, jqXHR){
|
||||
/* if we got json - show it */
|
||||
if(typeof data === 'object')
|
||||
data = JSON.stringify(data, null, 4);
|
||||
|
||||
initAce_f(data);
|
||||
|
||||
/* removing keyBinding if set */
|
||||
KeyBinding.unSet();
|
||||
|
||||
Util.hidePanel();
|
||||
Util.Images.hideLoad();
|
||||
|
||||
lThis.loading = false;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
/* function hides Ace editor */
|
||||
AceEditor.hide = (function() {
|
||||
var lElem = AceElement;
|
||||
KeyBinding.set();
|
||||
|
||||
if(lElem && FM)
|
||||
FM.removeChild(lElem);
|
||||
|
||||
Util.showPanel();
|
||||
});
|
||||
|
||||
cloudcmd.Editor.Keys = (function(pCurrentFile, pIsReadOnly){
|
||||
"use strict";
|
||||
|
||||
var lThis = this.Ace;
|
||||
/* loading js and css of Ace */
|
||||
this.Ace.show(pCurrentFile, pIsReadOnly);
|
||||
|
||||
var key_event = function(pEvent){
|
||||
|
||||
/* если клавиши можно обрабатывать */
|
||||
if( KeyBinding.get() ){
|
||||
/* if f4 or f3 pressed */
|
||||
var lF3 = cloudcmd.KEY.F3;
|
||||
var lF4 = cloudcmd.KEY.F4;
|
||||
var lShow = Util.bind(lThis.show, lThis);
|
||||
|
||||
if(!pEvent.shiftKey){
|
||||
if(pEvent.keyCode === lF4)
|
||||
lShow();
|
||||
else if(pEvent.keyCode === lF3){
|
||||
lShow(true);
|
||||
}
|
||||
}
|
||||
}else if (pEvent.keyCode === cloudcmd.KEY.ESC)
|
||||
AceEditor.hide();
|
||||
};
|
||||
|
||||
/* добавляем обработчик клавишь */
|
||||
if (document.addEventListener)
|
||||
document.addEventListener('keydown', key_event,false);
|
||||
|
||||
else{
|
||||
var lFunc;
|
||||
if(typeof document.onkeydown === 'function')
|
||||
lFunc = document.onkeydown;
|
||||
|
||||
document.onkeydown = function(){
|
||||
if(lFunc)
|
||||
lFunc();
|
||||
|
||||
key_event();
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
cloudcmd.Editor.Ace = AceEditor;
|
||||
})();
|
||||
Loading…
Add table
Add a link
Reference in a new issue