minor changes

This commit is contained in:
coderaiser 2012-08-05 08:24:54 -04:00
parent b42242d7a2
commit 9cdb844015
2 changed files with 242 additions and 255 deletions

View file

@ -322,6 +322,8 @@ CloudClient.Util = (function(){
this.showLoad = function(pElem){
var lLoadingImage = CloudCommander._images.loading();
var lErrorImage = CloudCommander._images.error();
lErrorImage.className = 'icon error hidden';
var lCurrent;
if(pElem)
@ -339,7 +341,32 @@ CloudClient.Util = (function(){
(lParent && lParent !== lCurrent))
lCurrent.appendChild(lLoadingImage);
lLoadingImage.className = 'icon loading'; /* показываем загрузку*/
lLoadingImage.className = 'icon loading'; /* показываем загрузку*/
};
this.showError = function(jqXHR, textStatus, errorThrown){
var lLoadingImage = CloudCommander._images.loading();
var lErrorImage = CloudCommander._images.error();
var lText = jqXHR.responseText;
/* если файла не существует*/
if(!lText.indexOf('Error: ENOENT, '))
lText = lText.replace('Error: ENOENT, n','N');
/* если не хватает прав для чтения файла*/
else if(!lText.indexOf('Error: EACCES,'))
lText = lText.replace('Error: EACCES, p','P');
lErrorImage.className='icon error';
lErrorImage.title = lText;
var lParent = lLoadingImage.parentElement;
if(lParent)
lParent.appendChild(lErrorImage);
lLoadingImage.className ='hidden';
console.log(lText);
};
});
@ -787,46 +814,15 @@ CloudClient._ajaxLoad=function(path, pNeedRefresh)
try{
$.ajax({
url: path,
error: function(jqXHR, textStatus, errorThrown){
ErrorImage.className='icon error';
ErrorImage.title = jqXHR.responseText;
var lLoading = getById('loading-image');
lLoading.parentElement.appendChild(ErrorImage);
lLoading.className ='hidden';
console.log(jqXHR.responseText);
},
error: Util.showError,
success:function(data, textStatus, jqXHR){
/* если такой папки (или файла) нет
* прячем загрузку и показываем ошибку
*/
/* для совместимости с firefox меняем data
* на jqXHR, он воспринимает data к Document
* когда возвращаеться ошибка, о том, что
* нет файла или нет доступа
*/
var lLoading;
if(!jqXHR.responseText.indexOf('Error:')){
/* если файла не существует*/
if(!jqXHR.responseText.indexOf('Error: ENOENT, ')){
ErrorImage.title = jqXHR.responseText.replace('Error: ENOENT, n','N');
}
/* если не хватает прав для чтения файла*/
else if(!jqXHR.responseText.indexOf('Error: EACCES,')){
ErrorImage.title = jqXHR.responseText.replace('Error: EACCES, p','P');
} else
ErrorImage.title = jqXHR.responseText;
ErrorImage.className ='icon error';
lLoading = getById('loading-image');
lLoading.parentElement.appendChild(ErrorImage);
lLoading.className = 'hidden';
console.log(jqXHR.responseText);
return;
}
*/
if(!jqXHR.responseText.indexOf('Error:'))
return Util.showError(jqXHR);
CloudClient._createFileTable(lPanel,data);
CloudClient._changeLinks(lPanel);

View file

@ -1,218 +1,209 @@
var CloudCommander, CloudFunc, CodeMirror;
/* object contains editors CodeMirror
* and later will be Ace
*/
CloudCommander.Editor = {};
CloudCommander.Editor.CodeMirror = new CloudCommander.Util()
/* indicator says CodeMirror still loads */
CloudCommander.Editor.CodeMirror.loading = false;
/* function loads CodeMirror js and css files */;
CloudCommander.Editor.CodeMirror.load = (function(pParent){
/* function shows editor */
var createEditorDiv = function(){
if (!pParent.getById('CloudEditor')) {
var lFM = document.getElementById('fm');
if(lFM)
pParent.anyload({
name : 'div',
id : 'CloudEditor',
element : lFM
});
else
console.log('Error. Something went wrong FM not found');
pParent.show();
}
};
/* function loads css files
* of CodeMirror
*/
var loadAll = function(pParent) {
return function(){
pParent.cssLoad({
src : 'lib/client/editor/codemirror/pack/codemirror.pack.css'
});
pParent.cssLoad({
src : 'lib/client/editor/codemirror/pack/night.pack.css'
});
pParent.cssSet({id:'editor',
inner : '.CodeMirror{' +
'font-family :\'Droid Sans Mono\';' +
'font-size :15px;' +
'padding :20px;' +
'}' +
'.CodeMirror-scroll{' +
'height : 660px;' +
'}'
});
pParent.jsload('lib/client/editor/' +
'codemirror/pack/javascript.pack.js',
createEditorDiv);
};
};
/* load CodeMirror main module */
pParent.jsload('lib/client/editor/' +
'codemirror/pack/codemirror.pack.js',
loadAll(this));
});
/* function shows CodeMirror editor */
CloudCommander.Editor.CodeMirror.show = (function(){
/* if CloudEditor is not loaded - loading him */
if(!this.getById('CloudEditor'))
return this.load(this);
/* if CodeMirror function show already
* called do not call it again
* if f4 key pressed couple times
*/
if(this.loading)
return;
var lParent = this;
var initCodeMirror_f = function(pValue){
CodeMirror(lCloudEditor,{
mode : 'javascript',
value : pValue,
theme : 'night',
lineNumbers : true,
//переносим длинные строки
lineWrapping: false,
autofocus : true,
extraKeys: {
//Сохранение
"Esc": lParent.hide(lParent)
}
});
};
var lLeft = this.getById('left');
var lCloudEditor = this.getById('CloudEditor');
var lCURRENTFILE = CloudCommander.CURRENT_FILE;
var lCurrent = this.getByClass(lCURRENTFILE);
var lA;
if(lCurrent.length){
lCurrent = lCurrent[0];
/* getting link */
lA = lCurrent.getElementsByTagName('a');
if(!lA.length)
return console.log('Error:' +
'can not find links in current file');
lA = lA[0].href;
/* убираем адрес хоста*/
lA = '/' + lA.replace(document.location.href,'');
/* checking is this link is to directory */
var lSize = lCurrent.getElementsByClassName('size');
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, '');
}
}
}
}
var lLoadingImage = CloudCommander._images.loading();
var lErrorImage = CloudCommander._images.error();
this.loading = true;
/* reading data from current file */
$.ajax({
url:lA,
error: function(jqXHR, textStatus, errorThrown){
lErrorImage.className = 'icon error';
lErrorImage.title = jqXHR.responseText;
if(lCurrent)
lCurrent.firstChild.nextSibling.appendChild(lErrorImage);
lLoadingImage.className = 'hidden';
console.log(jqXHR.responseText);
lParent.loading = false;
},
success:function(data, textStatus, jqXHR){
/* if we got json - show it */
if(typeof data === 'object')
data = JSON.stringify(data, null, 4);
initCodeMirror_f(data);
/* removing keyBinding if set */
CloudCommander.keyBinded = false;
lLeft &&
(lLeft.className = 'panel hidden');
lLoadingImage.className = 'hidden';
lParent.loading = false;
}
});
});
/* function hides CodeMirror editor */
CloudCommander.Editor.CodeMirror.hide = (function(pParent) {
return function(){
CloudCommander.keyBinded = true;
var lLeft = pParent.getById('left');
var lCloudEditor = pParent.getById('CloudEditor');
/*
lCloudEditor &&
(lCloudEditor.className = 'hidden');
*/
lLeft &&
(lLeft.className = 'panel');
var lCodeMirror = pParent.getByClass('CodeMirror');
if(lCodeMirror.length)
lCloudEditor
.removeChild(lCodeMirror[0]);
};
});
CloudCommander.Editor.Keys = (function(){
"use strict";
/* loading js and css of CodeMirror */
this.CodeMirror.show(this.CodeMirror);
var key_event=function(event){
/* если клавиши можно обрабатывать */
if(CloudCommander.keyBinded){
/* if f4 pressed */
if(event.keyCode===115){
CloudCommander.Editor.CodeMirror.show();
}
}
};
/* добавляем обработчик клавишь */
if (document.addEventListener)
document.addEventListener('keydown', key_event,false);
else
document.onkeypress=key_event;
var CloudCommander, CloudFunc, CodeMirror;
/* object contains editors CodeMirror
* and later will be Ace
*/
CloudCommander.Editor = {};
CloudCommander.Editor.CodeMirror = new CloudCommander.Util();
/* indicator says CodeMirror still loads */
CloudCommander.Editor.CodeMirror.loading = false;
/* function loads CodeMirror js and css files */
CloudCommander.Editor.CodeMirror.load = (function(pParent){
/* function shows editor */
var createEditorDiv = function(){
if (!pParent.getById('CloudEditor')) {
var lFM = document.getElementById('fm');
if(lFM)
pParent.anyload({
name : 'div',
id : 'CloudEditor',
element : lFM
});
else
console.log('Error. Something went wrong FM not found');
pParent.show();
}
};
/* function loads css files
* of CodeMirror
*/
var loadAll = function(pParent) {
return function(){
pParent.cssLoad({
src : 'lib/client/editor/codemirror/pack/codemirror.pack.css'
});
pParent.cssLoad({
src : 'lib/client/editor/codemirror/pack/night.pack.css'
});
pParent.cssSet({id:'editor',
inner : '.CodeMirror{' +
'font-family :\'Droid Sans Mono\';' +
'font-size :15px;' +
'padding :20px;' +
'}' +
'.CodeMirror-scroll{' +
'height : 660px;' +
'}'
});
pParent.jsload('lib/client/editor/' +
'codemirror/pack/javascript.pack.js',
createEditorDiv);
};
};
/* load CodeMirror main module */
pParent.jsload('lib/client/editor/' +
'codemirror/pack/codemirror.pack.js',
loadAll(this));
});
/* function shows CodeMirror editor */
CloudCommander.Editor.CodeMirror.show = (function(){
/* if CloudEditor is not loaded - loading him */
if(!this.getById('CloudEditor'))
return this.load(this);
/* if CodeMirror function show already
* called do not call it again
* if f4 key pressed couple times
*/
if(this.loading)
return;
var lParent = this;
var initCodeMirror_f = function(pValue){
CodeMirror(lCloudEditor,{
mode : 'javascript',
value : pValue,
theme : 'night',
lineNumbers : true,
//переносим длинные строки
lineWrapping: false,
autofocus : true,
extraKeys: {
//Сохранение
"Esc": lParent.hide(lParent)
}
});
};
var lLeft = this.getById('left');
var lCloudEditor = this.getById('CloudEditor');
var lCURRENTFILE = CloudCommander.CURRENT_FILE;
var lCurrent = this.getByClass(lCURRENTFILE);
var lA;
if(lCurrent.length){
lCurrent = lCurrent[0];
/* getting link */
lA = lCurrent.getElementsByTagName('a');
if(!lA.length)
return console.log('Error:' +
'can not find links in current file');
lA = lA[0].href;
/* убираем адрес хоста*/
lA = '/' + lA.replace(document.location.href,'');
/* checking is this link is to directory */
var lSize = lCurrent.getElementsByClassName('size');
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, '');
}
}
}
}
var lLoadingImage = CloudCommander._images.loading();
this.loading = true;
/* reading data from current file */
$.ajax({
url:lA,
error: (function(jqXHR, textStatus, errorThrown){
lParent.loading = false;
return lParent.showError(jqXHR, textStatus, errorThrown);
}),
success:function(data, textStatus, jqXHR){
/* if we got json - show it */
if(typeof data === 'object')
data = JSON.stringify(data, null, 4);
initCodeMirror_f(data);
/* removing keyBinding if set */
CloudCommander.keyBinded = false;
lLeft &&
(lLeft.className = 'panel hidden');
lLoadingImage.className = 'hidden';
lParent.loading = false;
}
});
});
/* function hides CodeMirror editor */
CloudCommander.Editor.CodeMirror.hide = (function(pParent) {
return function(){
CloudCommander.keyBinded = true;
var lLeft = pParent.getById('left');
var lCloudEditor = pParent.getById('CloudEditor');
/*
lCloudEditor &&
(lCloudEditor.className = 'hidden');
*/
lLeft &&
(lLeft.className = 'panel');
var lCodeMirror = pParent.getByClass('CodeMirror');
if(lCodeMirror.length)
lCloudEditor
.removeChild(lCodeMirror[0]);
};
});
CloudCommander.Editor.Keys = (function(){
"use strict";
/* loading js and css of CodeMirror */
this.CodeMirror.show(this.CodeMirror);
var key_event=function(event){
/* если клавиши можно обрабатывать */
if(CloudCommander.keyBinded){
/* if f4 pressed */
if(event.keyCode===115){
CloudCommander.Editor.CodeMirror.show();
}
}
};
/* добавляем обработчик клавишь */
if (document.addEventListener)
document.addEventListener('keydown', key_event,false);
else
document.onkeypress=key_event;
});