diff --git a/ChangeLog b/ChangeLog index e4989847..f52a5847 100644 --- a/ChangeLog +++ b/ChangeLog @@ -65,6 +65,8 @@ is pressed and current file is directory. * Renamed promptNewFolder -> promptNewDir'. +* Added function getSelectedNames. + 2012.03.01, Version 0.1.9 diff --git a/lib/client/dom.js b/lib/client/dom.js index e3e38955..b4225dfb 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -430,6 +430,8 @@ var CloudCommander, Util, DOM = {}, CloudFunc; DOM.RESTfull.save(lDir + lName + lType, null, CloudCommander.refresh); }; + + /** * delete currentfile, prompt before it * @@ -439,15 +441,20 @@ var CloudCommander, Util, DOM = {}, CloudFunc; var lRet, lCurrent, lName, - lMsg = 'Are you sure thet you want delete '; + lMsg = 'Are you sure thet you want delete ', + lSelected = DOM.getSelectedFiles(); - /* dom element passed and it is not event */ - if( Util.isObject(pCurrentFile) && !pCurrentFile.type) - lCurrent = pCurrentFile; - else - lCurrent = DOM.getCurrentFile(); + if(lSelected){ - lName = DOM.getCurrentName(lCurrent); + }else{ + /* dom element passed and it is not event */ + if( pCurrentFile && !pCurrentFile.pType) + lCurrent = pCurrentFile; + else + lCurrent = DOM.getCurrentFile(); + + lName = DOM.getCurrentName(lCurrent); + } lRet = confirm(lMsg + lName + '?'); @@ -1013,14 +1020,14 @@ var CloudCommander, Util, DOM = {}, CloudFunc; * get size * @pCurrentFile */ - DOM.loadCurrentSize = function(pCallBack, pCurrentFile){ + DOM.loadCurrentSize = function(pCallBack, pCurrent){ var lRet, - lLink = DOM.getCurrentPath(pCurrentFile); + lLink = DOM.getCurrentPath(pCurrent); /* если это папка - возвращаем слово dir вместо размера*/ DOM.RESTfull.read(lLink, function(pSize){ - DOM.setCurrentSize(pSize, pCurrentFile); - Util.exec(pCallBack); + DOM.setCurrentSize(pSize, pCurrent); + Util.exec(pCallBack, pCurrent); }, '?size'); return lRet; @@ -1320,6 +1327,18 @@ var CloudCommander, Util, DOM = {}, CloudFunc; return lLink; }; + DOM.getSelectedNames = function(pSelected){ + var lSelected = pSelected || DOM.getSelectedFiles(), + lRet = lSelected ? [] : null; + + + if(lRet) + for(var i = 0, n = lSelected.length; i < n;i++) + lRet[i] = DOM.getCurrentName( lSelected[i] ); + + return lRet; + }; + /** * set name from current (or param) file * diff --git a/lib/client/keyBinding.js b/lib/client/keyBinding.js index 1e3b9802..362ee2d4 100644 --- a/lib/client/keyBinding.js +++ b/lib/client/keyBinding.js @@ -68,7 +68,7 @@ var CloudCommander, Util, DOM; var key_event = function(pEvent){ /* получаем выдленный файл*/ - var i, n, lCurrentFile = DOM.getCurrentFile(); + var i, n, lCurrent = DOM.getCurrentFile(); /* если клавиши можно обрабатывать*/ if(keyBinded && pEvent){ var lKeyCode = pEvent.keyCode, @@ -100,7 +100,7 @@ var CloudCommander, Util, DOM; var lPanel = DOM.getPanel(), lId = lPanel.id; - lTabPanel[lId] = lCurrentFile; + lTabPanel[lId] = lCurrent; lPanel = DOM.getPanel({active:false}); lId = lPanel.id; @@ -117,23 +117,23 @@ var CloudCommander, Util, DOM; break; case KEY.INSERT: - DOM.setSelectedFile(lCurrentFile); - DOM.setCurrentFile( lCurrentFile.nextSibling ); + DOM.setSelectedFile( lCurrent ); + DOM.setCurrentFile( lCurrent.nextSibling ); break; case KEY.DELETE: if(lShift){ - var lUrl = DOM.getCurrentPath(lCurrentFile); + var lUrl = DOM.getCurrentPath(lCurrent); - if( DOM.isCurrentIsDir(lCurrentFile) ) + if( DOM.isCurrentIsDir(lCurrent) ) lUrl += '?dir'; DOM.RESTfull.delete(lUrl, function(){ - DOM.deleteCurrent(lCurrentFile); + DOM.deleteCurrent(lCurrent); }); } else - DOM.promptDeleteCurrent(lCurrentFile); + DOM.promptDeleteCurrent(lCurrent); break; case KEY.F1: @@ -141,7 +141,7 @@ var CloudCommander, Util, DOM; break; case KEY.F2: - DOM.renameCurrent(lCurrentFile); + DOM.renameCurrent(lCurrent); break; case KEY.F3: @@ -158,12 +158,12 @@ var CloudCommander, Util, DOM; break; case KEY.F5: - DOM.copyCurrent(lCurrentFile); + DOM.copyCurrent(lCurrent); DOM.preventDefault(pEvent); break; case KEY.F6: - DOM.moveCurrent(lCurrentFile); + DOM.moveCurrent(lCurrent); DOM.preventDefault(pEvent); break; @@ -172,7 +172,7 @@ var CloudCommander, Util, DOM; break; case KEY.F: - DOM.promptDeleteCurrent(lCurrentFile); + DOM.promptDeleteCurrent(lCurrent); break; case KEY.F10: @@ -188,16 +188,16 @@ var CloudCommander, Util, DOM; break; case KEY.SPACE: - var lSelected = DOM.isSelected(lCurrentFile), - lDir = DOM.isCurrentIsDir(lCurrentFile); + var lSelected = DOM.isSelected(lCurrent), + lDir = DOM.isCurrentIsDir(lCurrent); if(!lDir) lSelected = true; Util.ifExec(lSelected, function(){ - DOM.setSelectedFile(lCurrentFile); + DOM.setSelectedFile(lCurrent); }, function(pCallBack){ - DOM.loadCurrentSize(pCallBack, lCurrentFile); + DOM.loadCurrentSize(pCallBack, lCurrent); }); @@ -209,9 +209,9 @@ var CloudCommander, Util, DOM; * выделяем предыдущую строку */ case KEY.UP: if(lShift) - DOM.setSelectedFile(lCurrentFile); + DOM.setSelectedFile(lCurrent); - DOM.setCurrentFile( lCurrentFile.previousSibling ); + DOM.setCurrentFile( lCurrent.previousSibling ); DOM.preventDefault( pEvent ); break; @@ -219,9 +219,9 @@ var CloudCommander, Util, DOM; * выделяем следующую строку */ case KEY.DOWN: if(lShift) - DOM.setSelectedFile(lCurrentFile); + DOM.setSelectedFile(lCurrent); - DOM.setCurrentFile( lCurrentFile.nextSibling ); + DOM.setCurrentFile( lCurrent.nextSibling ); DOM.preventDefault( pEvent ); break; @@ -229,14 +229,14 @@ var CloudCommander, Util, DOM; * переходим к самому верхнему * * элементу */ case KEY.HOME: - DOM.setCurrentFile( lCurrentFile.parentElement.firstChild ); + DOM.setCurrentFile( lCurrent.parentElement.firstChild ); DOM.preventDefault(pEvent); break; /* если нажали клавишу End * выделяем последний элемент */ case KEY.END: - DOM.setCurrentFile( lCurrentFile.parentElement.lastElementChild ); + DOM.setCurrentFile( lCurrent.parentElement.lastElementChild ); DOM.preventDefault( pEvent ); break; @@ -246,11 +246,11 @@ var CloudCommander, Util, DOM; DOM.scrollByPages( DOM.getPanel(), 1 ); for(i=0; i<30; i++){ - if(!lCurrentFile.nextSibling) break; + if(!lCurrent.nextSibling) break; - lCurrentFile = lCurrentFile.nextSibling; + lCurrent = lCurrent.nextSibling; } - DOM.setCurrentFile(lCurrentFile); + DOM.setCurrentFile(lCurrent); DOM.preventDefault(pEvent); break; @@ -258,7 +258,7 @@ var CloudCommander, Util, DOM; case KEY.PAGE_UP: DOM.scrollByPages( DOM.getPanel(), -1 ); - var lC = lCurrentFile, + var lC = lCurrent, tryCatch = function(pCurrentFile){ Util.tryCatch(function(){ return pCurrentFile @@ -285,7 +285,7 @@ var CloudCommander, Util, DOM; case KEY.A: if(pEvent.ctrlKey){ - var lParent = lCurrentFile.parentElement, + var lParent = lCurrent.parentElement, lNodes = lParent.childNodes; /* not path and fm_header */ diff --git a/lib/server/main.js b/lib/server/main.js index a9d262ec..52570055 100644 --- a/lib/server/main.js +++ b/lib/server/main.js @@ -73,6 +73,8 @@ exports.fs.exists = exports.fs.exists || exports.path.exists, /* Needed Modules */ + + /* we can not use librequare heare */ exports.util = Util = require(LIBDIR + 'util'), exports.zlib = zlib = mrequire('zlib'), @@ -107,10 +109,9 @@ exports.ischanged = srvrequire('ischanged'); exports.commander = srvrequire('commander'); exports.minify = srvrequire('minify').Minify; - /* - * second initializing after all modules load, so global var is - * totally filled of all information that should know all modules - */ + + /* second initializing after all modules load, so global var is * + * totally filled of all information that should know all modules */ global.cloudcmd.main = exports; /** diff --git a/lib/server/rest.js b/lib/server/rest.js index 183a76d7..940403be 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -66,7 +66,7 @@ if(lRet){ var p = pParams; - lRet = Util.isContainStr(p.name, CloudFunc.FS); + lRet = Util.isContainStrAtBegin(p.name, CloudFunc.FS); if( lRet) onFS(pParams); else{ @@ -194,6 +194,11 @@ }; send(p); break; + + case 'proxy': + + break; + case 'zip': main.sendFile(pParams); break; @@ -264,11 +269,11 @@ var l = lFiles, lReadStream = fs.createReadStream(l.from), lWriteStream = fs.createWriteStream(l.to), + lError = function(pError){ main.sendError(pParams, pError); }; - lWriteStream.on('error', lError); lReadStream.on('error', lError); diff --git a/lib/util.js b/lib/util.js index 1d0533d9..d42804ed 100644 --- a/lib/util.js +++ b/lib/util.js @@ -15,7 +15,7 @@ Util = exports || {}; * @param {object} pContext */ Util.bind = function(pFunction, pContext){ - var lRet = false; + var lRet; if( Util.isFunction(pFunction) ) lRet = pFunction.bind(pContext); @@ -876,6 +876,7 @@ Util = exports || {}; return lRet; }; + /** * stop timer * @pArg @@ -888,6 +889,7 @@ Util = exports || {}; return lRet; }; + /** * Gets current date in format yy.mm.dd hh:mm:ss */