fixed bug with selectecting root directory with space

This commit is contained in:
coderaiser 2013-04-10 04:37:46 -04:00
parent 3021d646a4
commit f0b07ae13f
3 changed files with 54 additions and 31 deletions

View file

@ -69,6 +69,8 @@ is pressed and current file is directory.
* Added ability to delete file when f8 key pressed.
* Fixed bug with selectecting root directory with space
2012.03.01, Version 0.1.9

View file

@ -5,8 +5,7 @@ var CloudCommander, Util, DOM = {}, CloudFunc;
var CURRENT_FILE = 'current-file',
SELECTED_FILE = 'selected-file',
XMLHTTP,
Title,
XMLHTTP, Title,
/* Обьект содержит функции для отображения картинок */
Images = function (){
@ -38,10 +37,10 @@ var CloudCommander, Util, DOM = {}, CloudFunc;
/* Обьект содержит функции для работы с CloudCmd API */
RESTfull = function(){
this.delete = function(pUrl, pData, pCallBack){
this.delete = function(pUrl, pData, pCallBack, pQuery){
sendRequest({
method : 'DELETE',
url : CloudFunc.FS + pUrl,
url : CloudFunc.FS + pUrl + (pQuery || ''),
data : pData,
callback : pCallBack
});
@ -441,35 +440,57 @@ var CloudCommander, Util, DOM = {}, CloudFunc;
DOM.promptDeleteCurrent = function(pCurrentFile){
var lRet,
lCurrent,
lQuery,
lName,
lMsg = 'Are you sure thet you want delete ',
lSelected = DOM.getSelectedFiles();
if(lSelected){
lMsg,
lMsgAsk = 'Do you really want to delete the ',
lMsgSel = 'selected ',
lSelected = DOM.getSelectedFiles(),
i, n = lSelected && lSelected.length;
if(n > 1){
lQuery = '?files';
lName = n > 1 ? 'files:\n' : '';
for(i = 0; i < 4 && i < n; i++)
lName += DOM.getCurrentName( lSelected[i] ) + '\n';
lName += '...';
lMsg = lMsgAsk + lMsgSel + n + ' files/directoris?\n\n';
}else{
var lType, lIsDir;
/* one file selected */
if( n === 1 )
lCurrent = lSelected[0];
/* dom element passed and it is not event */
if( pCurrentFile && !pCurrentFile.pType)
lCurrent = pCurrentFile;
else if( pCurrentFile && !pCurrentFile.pType)
lCurrent = pCurrentFile;
else
lCurrent = DOM.getCurrentFile();
lName = DOM.getCurrentName(lCurrent);
lType = DOM.isCurrentIsDir(lCurrent);
if(lIsDir){
lQuery = '?dir';
lType = lIsDir ? 'directory' : 'file' + ' ';
}
lName = DOM.getCurrentName(lCurrent);
lMsg = lMsgAsk + lMsgSel + lType + '?';
}
lRet = confirm(lMsg + lName + '?');
lRet = confirm(lMsg + lName);
if(lRet){
var lParent = lCurrent.parentElement,
lUrl = DOM.getCurrentPath(lCurrent);
if( DOM.isCurrentIsDir(lCurrent) )
lUrl += '?dir';
if(lCurrent && lParent && lName !== '..')
DOM.RESTfull.delete(lUrl, function(){
DOM.RESTfull.delete(lUrl, lSelected, function(){
DOM.deleteCurrent(lCurrent);
});
}, lQuery);
return lCurrent;
}
@ -804,11 +825,9 @@ var CloudCommander, Util, DOM = {}, CloudFunc;
onerror: function(){
DOM.jsload('/lib/client/jquery.js');
/*
* if could not load jquery from google server
/* if could not load jquery from google server
* maybe we offline, load font from local
* directory
*/
* directory */
DOM.cssSet({
id :'local-droids-font',
element : document.head,
@ -1023,13 +1042,16 @@ var CloudCommander, Util, DOM = {}, CloudFunc;
*/
DOM.loadCurrentSize = function(pCallBack, pCurrent){
var lRet,
lLink = DOM.getCurrentPath(pCurrent);
lCurrent = pCurrent || DOM.getCurrentFile(),
lLink = DOM.getCurrentPath(lCurrent),
lName = DOM.getCurrentName(lCurrent);
/* если это папка - возвращаем слово dir вместо размера*/
DOM.RESTfull.read(lLink, function(pSize){
DOM.setCurrentSize(pSize, pCurrent);
Util.exec(pCallBack, pCurrent);
}, '?size');
if(lName !== '..')
DOM.RESTfull.read(lLink, function(pSize){
DOM.setCurrentSize(pSize, lCurrent);
Util.exec(pCallBack, lCurrent);
}, '?size');
return lRet;
};
@ -1044,11 +1066,10 @@ var CloudCommander, Util, DOM = {}, CloudFunc;
lSize = CloudFunc.getShortSize(pSize);
lSizeElement[0].textContent = lSize;
};
/**
*
* @pCurrentFile
*/
DOM.getCurrentMode = function(pCurrentFile){
@ -1197,7 +1218,6 @@ var CloudCommander, Util, DOM = {}, CloudFunc;
return lRet;
};
/**
* setting history wrapper
*/

View file

@ -175,9 +175,10 @@ var CloudCommander, Util, DOM;
case KEY.SPACE:
var lSelected = DOM.isSelected(lCurrent),
lDir = DOM.isCurrentIsDir(lCurrent);
lDir = DOM.isCurrentIsDir(lCurrent),
lName = DOM.getCurrentName(lCurrent);
if(!lDir)
if(!lDir || lName === '..')
lSelected = true;
Util.ifExec(lSelected, function(){