diff --git a/lib/client.js b/lib/client.js index 61483f22..6eb002c2 100644 --- a/lib/client.js +++ b/lib/client.js @@ -280,7 +280,7 @@ var Util, DOM, CloudFunc, $, KeyBinding, CloudCommander; DOM.copyCurrent, /* f5 */ DOM.moveCurrent, /* f6 */ DOM.promptNewDir, /* f7 */ - DOM.promptDeleteCurrent, /* f8 */ + DOM.promptDeleteSelected, /* f8 */ ]; for(var i = 1; i <= 8; i++){ diff --git a/lib/client/dom.js b/lib/client/dom.js index 452a007b..c6c5732e 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -42,7 +42,8 @@ var CloudCommander, Util, DOM = {}, CloudFunc; method : 'DELETE', url : CloudFunc.FS + pUrl + (pQuery || ''), data : pData, - callback : pCallBack + callback : pCallBack, + imgPosition : { top: !!pData } }); }; @@ -52,7 +53,7 @@ var CloudCommander, Util, DOM = {}, CloudFunc; url : CloudFunc.FS + pUrl, data : pData, callback : pCallBack, - imgPosition : top + imgPosition : { top: true } }); }; @@ -85,10 +86,9 @@ var CloudCommander, Util, DOM = {}, CloudFunc; function sendRequest(pParams){ var lRet = Util.checkObjTrue(pParams, ['method']); if(lRet){ - var p = pParams, - lImgPosition = p.imgPosition && p.imgPosition.top; + var p = pParams; - DOM.Images.showLoad( lImgPosition ); + DOM.Images.showLoad( p.imgPosition ); CloudCommander.getConfig(function(pConfig){ var lData; @@ -437,54 +437,67 @@ var CloudCommander, Util, DOM = {}, CloudFunc; * * @pCurrentFile */ - DOM.promptDeleteCurrent = function(pCurrentFile){ + DOM.promptDeleteSelected = function(pCurrentFile){ var lRet, - lCurrent, lQuery, lName, lMsg, + lCurrent, lQuery, lMsg, + lName = '', lMsgAsk = 'Do you really want to delete the ', lMsgSel = 'selected ', - lSelected = DOM.getSelectedFiles(), + lFiles = DOM.getSelectedFiles(), + lSelected = DOM.getSelectedNames(lFiles), i, n = lSelected && lSelected.length; if(n > 1){ for(i = 0; i < 4 && i < n; i++) - lName += DOM.getCurrentName( lSelected[i] ) + '\n'; + lName += lSelected[i] + '\n'; - lName += '...'; - lMsg = lMsgAsk + lMsgSel + n + ' files/directoris?\n\n'; + if(n > 5) + lName += '...'; + + lMsg = lMsgAsk + lMsgSel + n + ' files/directoris?\n\n' + lName ; lQuery = '?files'; }else{ var lType, lIsDir; - /* one file selected */ - if( n === 1 ) - lCurrent = lSelected[0]; - /* dom element passed and it is not event */ - else if( pCurrentFile && !pCurrentFile.pType) - lCurrent = pCurrentFile; + if( pCurrentFile && !pCurrentFile.pType) + lCurrent = pCurrentFile; else lCurrent = DOM.getCurrentFile(); - lType = DOM.isCurrentIsDir(lCurrent); + lIsDir = DOM.isCurrentIsDir(lCurrent); if(lIsDir){ lQuery = '?dir'; - lType = lIsDir ? 'directory' : 'file' + ' '; + lType ='directory'; } + else + lType = 'file'; + + lType += ' '; lName = DOM.getCurrentName(lCurrent); - lMsg = lMsgAsk + lMsgSel + lType + '?'; + lMsg = lMsgAsk + lMsgSel + lType + lName + '?'; } - lRet = confirm(lMsg + lName); - + if(lName !== '..') + lRet = confirm(lMsg); + else + alert('No files selected!'); if(lRet){ - var lParent = lCurrent.parentElement, - lUrl = DOM.getCurrentPath(lCurrent); + var lUrl; - if(lCurrent && lParent && lName !== '..') + if(lCurrent) + lUrl = DOM.getCurrentPath(lCurrent); + else + lUrl = DOM.getCurrentDirPath(); + + if(lCurrent || lSelected) DOM.RESTfull.delete(lUrl, lSelected, function(){ - DOM.deleteCurrent(lCurrent); + if(n > 1) + DOM.deleteSelected(lFiles); + else + DOM.deleteCurrent(lCurrent); }, lQuery); return lCurrent; @@ -1292,8 +1305,7 @@ var CloudCommander, Util, DOM = {}, CloudFunc; DOM.isCurrentIsDir = function(pCurrent){ var lCurrent = pCurrent || DOM.getCurrentFile(), lFileType = DOM.getByClass('mini-icon', lCurrent)[0], - lClass = lFileType && lFileType.className, - lRet = lClass && lClass.indexOf('directory') >= 0; + lRet = DOM.isContainClass(lFileType, 'directory'); return lRet; }; @@ -1347,17 +1359,16 @@ var CloudCommander, Util, DOM = {}, CloudFunc; var lSelected = pSelected || DOM.getSelectedFiles(), lRet = lSelected ? [] : null; - if(lRet) - for(var i = 0, n = lSelected.length; i < n;i++){ - var lName =DOM.getCurrentName( lSelected[i] ); + if(lRet){ + var lFirst = lSelected[0], + lName = DOM.getCurrentName( lFirst ); - if(lName === '..'){ - DOM.unsetSelectedFile( lSelected[i--] ); - } - else - lRet[i] = lName; - } - + if(lName === '..') + DOM.unsetSelectedFile( lFirst ); + + for(var i = 0, n = lSelected.length; i < n;i++) + lRet[i] = DOM.getCurrentName( lSelected[i] ); + } return lRet; }; diff --git a/lib/client/keyBinding.js b/lib/client/keyBinding.js index f2af9ad8..56111a50 100644 --- a/lib/client/keyBinding.js +++ b/lib/client/keyBinding.js @@ -115,7 +115,7 @@ var CloudCommander, Util, DOM; }); } else - DOM.promptDeleteCurrent(lCurrent); + DOM.promptDeleteSelected(lCurrent); break; case KEY.F1: @@ -154,7 +154,7 @@ var CloudCommander, Util, DOM; break; case KEY.F8: - DOM.promptDeleteCurrent(lCurrent); + DOM.promptDeleteSelected(lCurrent); break; case KEY.F: diff --git a/lib/server/rest.js b/lib/server/rest.js index e05d1500..c8afabf3 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -163,9 +163,32 @@ }); else if(lQuery === 'files'){ getBody(p.request, function(pBody){ - var lFiles = Util.parseJSON(pBody); - for(var i = 0, n = lFiles.length; i < n; i ++) - Util.log(lFiles[i]); + var lFiles = Util.parseJSON(pBody), + lDir = p.name; + + function stat(pParams){ + var lRet = Util.checkParams(pParams, 'params'); + + if(lRet){ + var p = pParams, + d = p.params; + + if(p.data.isDirectory()){ + + } + else if(p.data.isFile()){ + + } + } + } + + + for(var i = 0, n = lFiles.length; i < n; i ++){ + Util.log(lDir + lFiles[i]); + //fs.stat(lDir + lFiles[i], Util.call()) + } + + main.sendResponse(pParams, pBody); }); }else fs.unlink(p.name, function(pError){