mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 10:45:47 +00:00
added ability to recursivly get current folder size
This commit is contained in:
parent
da282742d6
commit
91a72c96df
7 changed files with 90 additions and 50 deletions
|
|
@ -54,6 +54,8 @@ from storage folder.
|
|||
|
||||
* Added ability to delete selected files from DOM.
|
||||
|
||||
* Added ability to recursivly get current folder size.
|
||||
|
||||
|
||||
2012.03.01, Version 0.1.9
|
||||
|
||||
|
|
|
|||
|
|
@ -156,26 +156,22 @@ body{
|
|||
margin: 26px 26px 0 26px;
|
||||
}
|
||||
.fm-header{
|
||||
font-weight: bold;
|
||||
font-weight: bold;
|
||||
}
|
||||
#path{
|
||||
margin-left:1.5%;
|
||||
margin-left:1.5%;
|
||||
}
|
||||
.left, #left{
|
||||
float:left;
|
||||
}
|
||||
|
||||
/* фон файла, на котором курсор*/
|
||||
.current-file{
|
||||
border: 1.5px solid rgba(49, 123, 249, .40);
|
||||
}
|
||||
.selected-file{
|
||||
color:white;
|
||||
background-color: rgb(49, 123, 249);
|
||||
background-color: rgba(49, 123, 249, .40);
|
||||
}
|
||||
|
||||
.selected-file .name > a{
|
||||
color:white;
|
||||
.selected-file, .selected-file .name > a{
|
||||
color: rgb(254,159,224);
|
||||
}
|
||||
|
||||
.right, #right{
|
||||
|
|
@ -189,6 +185,7 @@ body{
|
|||
#keyspanel{
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* информация о файлах и папках*/
|
||||
.name{
|
||||
float: left;
|
||||
|
|
|
|||
|
|
@ -56,10 +56,10 @@ var CloudCommander, Util, DOM = {}, CloudFunc;
|
|||
});
|
||||
};
|
||||
|
||||
this.read = function(pUrl, pCallBack){
|
||||
this.read = function(pUrl, pCallBack, pQuery){
|
||||
sendRequest({
|
||||
method : 'GET',
|
||||
url : CloudFunc.FS + pUrl,
|
||||
url : CloudFunc.FS + pUrl + (pQuery || ''),
|
||||
callback : pCallBack
|
||||
});
|
||||
};
|
||||
|
|
@ -997,6 +997,22 @@ var CloudCommander, Util, DOM = {}, CloudFunc;
|
|||
return lRet;
|
||||
};
|
||||
|
||||
/**
|
||||
* get size
|
||||
* @pCurrentFile
|
||||
*/
|
||||
DOM.loadCurrentSize = function(pCurrentFile){
|
||||
var lRet,
|
||||
lLink = DOM.getCurrentPath(pCurrentFile);
|
||||
/* если это папка - возвращаем слово dir вместо размера*/
|
||||
|
||||
DOM.RESTfull.read(lLink, function(pSize){
|
||||
Util.log(pSize);
|
||||
}, '?size');
|
||||
|
||||
return lRet;
|
||||
};
|
||||
|
||||
/**
|
||||
* set size
|
||||
* @pCurrentFile
|
||||
|
|
@ -1039,6 +1055,7 @@ var CloudCommander, Util, DOM = {}, CloudFunc;
|
|||
Util.exec(lErrorWas);
|
||||
DOM.Images.showError(jqXHR);
|
||||
};
|
||||
|
||||
if( Util.isFunction(lParams) )
|
||||
lParams.success = Util.retExec(pParams);
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ var CloudCommander, Util, DOM;
|
|||
ENTER : 13,
|
||||
ESC : 27,
|
||||
|
||||
SPACE : 32,
|
||||
PAGE_UP : 33,
|
||||
PAGE_DOWN : 34,
|
||||
END : 35,
|
||||
|
|
@ -68,11 +69,12 @@ var CloudCommander, Util, DOM;
|
|||
var lCurrentFile = DOM.getCurrentFile(), i;
|
||||
/* если клавиши можно обрабатывать*/
|
||||
if(keyBinded && pEvent){
|
||||
var lKeyCode = pEvent.keyCode;
|
||||
var lKeyCode = pEvent.keyCode,
|
||||
lShift = pEvent.shiftKey;
|
||||
|
||||
/* open configuration window */
|
||||
if(lKeyCode === KEY.O && pEvent.altKey){
|
||||
console.log('openning config window...');
|
||||
Util.log('openning config window...');
|
||||
|
||||
DOM.Images.showLoad({top: true});
|
||||
|
||||
|
|
@ -118,7 +120,7 @@ var CloudCommander, Util, DOM;
|
|||
break;
|
||||
|
||||
case KEY.DELETE:
|
||||
if(pEvent.shiftKey){
|
||||
if(lShift){
|
||||
var lUrl = DOM.getCurrentPath(lCurrentFile);
|
||||
|
||||
if( DOM.isCurrentIsDir(lCurrentFile) )
|
||||
|
|
@ -141,8 +143,8 @@ var CloudCommander, Util, DOM;
|
|||
break;
|
||||
|
||||
case KEY.F3:
|
||||
var lEditor = CloudCmd[pEvent.shiftKey ?
|
||||
'Viewer' : 'Editor'];
|
||||
var lEditor = CloudCmd[lShift ? 'Viewer' : 'Editor'];
|
||||
|
||||
Util.exec(lEditor, true);
|
||||
DOM.preventDefault(pEvent);
|
||||
break;
|
||||
|
|
@ -172,7 +174,7 @@ var CloudCommander, Util, DOM;
|
|||
break;
|
||||
|
||||
case KEY.F10:
|
||||
if(pEvent.shiftKey){
|
||||
if(lShift){
|
||||
Util.exec(CloudCmd.Menu);
|
||||
DOM.preventDefault(pEvent);
|
||||
}
|
||||
|
|
@ -183,10 +185,18 @@ var CloudCommander, Util, DOM;
|
|||
Util.exec(CloudCmd.Terminal);
|
||||
break;
|
||||
|
||||
case KEY.SPACE:
|
||||
DOM.selectFile(lCurrentFile);
|
||||
DOM.preventDefault(pEvent);
|
||||
break;
|
||||
|
||||
/* навигация по таблице файлов *
|
||||
* если нажали клавишу вверх *
|
||||
* выделяем предыдущую строку */
|
||||
case KEY.UP:
|
||||
if(lShift)
|
||||
DOM.selectFile(lCurrentFile);
|
||||
|
||||
DOM.setCurrentFile( lCurrentFile.previousSibling );
|
||||
DOM.preventDefault( pEvent );
|
||||
break;
|
||||
|
|
@ -194,6 +204,9 @@ var CloudCommander, Util, DOM;
|
|||
/* если нажали клавишу в низ *
|
||||
* выделяем следующую строку */
|
||||
case KEY.DOWN:
|
||||
if(lShift)
|
||||
DOM.selectFile(lCurrentFile);
|
||||
|
||||
DOM.setCurrentFile( lCurrentFile.nextSibling );
|
||||
DOM.preventDefault( pEvent );
|
||||
break;
|
||||
|
|
@ -264,7 +277,7 @@ var CloudCommander, Util, DOM;
|
|||
* (обновляем кэш)
|
||||
*/
|
||||
else if(lKeyCode === KEY.R && pEvent.ctrlKey){
|
||||
console.log('<ctrl>+r pressed\n' +
|
||||
Util.log('<ctrl>+r pressed\n' +
|
||||
'reloading page...\n' +
|
||||
'press <alt>+q to remove all key-handlers');
|
||||
|
||||
|
|
@ -274,12 +287,12 @@ var CloudCommander, Util, DOM;
|
|||
|
||||
/* если нажали <ctrl>+d чистим кэш */
|
||||
else if(lKeyCode === KEY.D && pEvent.ctrlKey){
|
||||
Util.log('<ctrl>+d pressed\n' +
|
||||
'clearing cache...\n' +
|
||||
'press <alt>+q to remove all key-handlers');
|
||||
|
||||
DOM.Cache.clear();
|
||||
DOM.preventDefault();
|
||||
Util.log('<ctrl>+d pressed\n' +
|
||||
'clearing cache...\n' +
|
||||
'press <alt>+q to remove all key-handlers');
|
||||
|
||||
DOM.Cache.clear();
|
||||
DOM.preventDefault();
|
||||
}
|
||||
|
||||
/* если нажали <alt>+q
|
||||
|
|
@ -287,7 +300,7 @@ var CloudCommander, Util, DOM;
|
|||
* нажатий клавиш
|
||||
*/
|
||||
else if(lKeyCode === KEY.Q && pEvent.altKey){
|
||||
console.log('<alt>+q pressed\n' +
|
||||
Util.log('<alt>+q pressed\n' +
|
||||
'<ctrl>+r reload key-handerl - removed' +
|
||||
'<ctrl>+s clear cache key-handler - removed'+
|
||||
'press <alt>+s to to set them');
|
||||
|
|
@ -307,7 +320,7 @@ var CloudCommander, Util, DOM;
|
|||
/* обрабатываем нажатия на клавиши*/
|
||||
keyBinded = true;
|
||||
|
||||
console.log('<alt>+s pressed\n' +
|
||||
Util.log('<alt>+s pressed\n' +
|
||||
'<ctrl>+r reload key-handerl - set\n' +
|
||||
'<ctrl>+s clear cache key-handler - set\n' +
|
||||
'press <alt>+q to remove them');
|
||||
|
|
|
|||
|
|
@ -93,12 +93,11 @@
|
|||
var p = pParams,
|
||||
c = p.params;
|
||||
|
||||
if(c.stats)
|
||||
c.stats[c.name] = !p.error ? p.data : {
|
||||
'mode' : 0,
|
||||
'size' : 0,
|
||||
'isDirectory' : Util.retFalse
|
||||
};
|
||||
c.stats[c.name] = !p.error ? p.data : {
|
||||
'mode' : 0,
|
||||
'size' : 0,
|
||||
'isDirectory' : Util.retFalse
|
||||
};
|
||||
|
||||
if(c.count === Object.keys(c.stats).length)
|
||||
Util.exec(c.callback);
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@
|
|||
exports.appcache = srvrequire('appcache'),
|
||||
exports.cache = srvrequire('cache').Cache,
|
||||
exports.cloudfunc = librequire('cloudfunc'),
|
||||
exports.dir = srvrequire('dir');
|
||||
exports.rest = srvrequire('rest').api,
|
||||
exports.update = srvrequire('update'),
|
||||
exports.ischanged = srvrequire('ischanged');
|
||||
|
|
@ -111,6 +112,7 @@
|
|||
* totally filled of all information that should know all modules
|
||||
*/
|
||||
global.cloudcmd.main = exports;
|
||||
|
||||
/**
|
||||
* function do safe require of needed module
|
||||
* @param {Strin} pSrc
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
fs = main.fs,
|
||||
Util = main.util,
|
||||
CloudFunc = main.cloudfunc,
|
||||
dir = main.dir,
|
||||
OK = 200,
|
||||
Header = main.generateHeaders({
|
||||
name:'api.json'
|
||||
|
|
@ -41,7 +42,6 @@
|
|||
return lRet;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* send data
|
||||
*
|
||||
|
|
@ -96,27 +96,37 @@
|
|||
var p = pParams,
|
||||
lQuery = main.getQuery(p.request);
|
||||
|
||||
p.name = Util.removeStrOneTime(p.name, [CloudFunc.FS, '?dir']) || '/';
|
||||
p.name = Util.removeStrOneTime(p.name, CloudFunc.FS) || '/';
|
||||
switch(p.request.method){
|
||||
case 'GET':
|
||||
fs.stat(p.name, function(pError, pStat){
|
||||
if(!pError)
|
||||
if( pStat.isDirectory() )
|
||||
main.commander.getDirContent(pParams.name, function(pError, pData){
|
||||
if(!pError){
|
||||
pParams.request.url += '.json';
|
||||
pParams.data = Util.stringifyJSON(pData);
|
||||
main.sendResponse(pParams);
|
||||
}
|
||||
else
|
||||
main.sendError(pParams, pError);
|
||||
});
|
||||
if( Util.strCmp(lQuery, 'size') )
|
||||
dir.getSize(p.name, function(pErr, pSize){
|
||||
if(!pErr){
|
||||
var lSize = CloudFunc.getShortSize(pSize);
|
||||
main.sendResponse(pParams, lSize);
|
||||
}
|
||||
else
|
||||
main.sendFile(pParams);
|
||||
else
|
||||
main.sendError(pParams, pError);
|
||||
main.sendError(pParams, pErr);
|
||||
});
|
||||
else
|
||||
fs.stat(p.name, function(pError, pStat){
|
||||
if(!pError)
|
||||
if( pStat.isDirectory() )
|
||||
main.commander.getDirContent(pParams.name, function(pError, pData){
|
||||
if(!pError){
|
||||
pParams.request.url += '.json';
|
||||
pParams.data = Util.stringifyJSON(pData);
|
||||
main.sendResponse(pParams);
|
||||
}
|
||||
else
|
||||
main.sendError(pParams, pError);
|
||||
});
|
||||
else
|
||||
main.sendFile(pParams);
|
||||
else
|
||||
main.sendError(pParams, pError);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
break;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue