From dc809c122317df945a848c0e459a1252dd009aee Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 11 Mar 2013 09:04:31 -0400 Subject: [PATCH] changed removeStr to removeStrOneTime --- cloudcmd.js | 7 ++++--- lib/client/dom.js | 8 ++++---- lib/client/keyBinding.js | 3 +++ lib/server/rest.js | 4 ++-- lib/util.js | 18 ++++++++++++++++++ 5 files changed, 31 insertions(+), 9 deletions(-) diff --git a/cloudcmd.js b/cloudcmd.js index acdbabab..33fa7ae4 100644 --- a/cloudcmd.js +++ b/cloudcmd.js @@ -234,8 +234,9 @@ pParams.name = main.HTMLDIR + p.name + '.html'; lRet = main.sendFile( pParams ); } - else if( Util.isContainStr(p.name, FS) || Util.strCmp( p.name, '/') ){ - if( Util.isContainStr(p.name, 'no-js/') ){ + else if( Util.isContainStrAtBegin(p.name, FS) || Util.strCmp( p.name, '/') ){ + + if( Util.isContainStrAtBegin(p.name, FS + 'no-js/') ){ var lURL = Util.removeStr(pParams.name, 'no-js/'); return main.redirect(pParams, lURL); } @@ -254,7 +255,7 @@ var lRet = main.checkParams(pParams); if(lRet){ var p = pParams; - p.name = Util.removeStr(p.name, CloudFunc.FS) || main.SLASH; + p.name = Util.removeStrOneTime(p.name, CloudFunc.FS) || main.SLASH; fs.stat(p.name, function(pError, pStat){ if(!pError) diff --git a/lib/client/dom.js b/lib/client/dom.js index 6f342c77..bd6c05be 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -470,7 +470,7 @@ var CloudCommander, Util, if(lRet){ var lNum = pSrc.lastIndexOf('/') + 1, lSub = pSrc.substr(pSrc, lNum), - lID = Util.removeStr(pSrc, lSub ); + lID = Util.removeStrOneTime(pSrc, lSub ); /* убираем точки */ while(lID.indexOf('.') > 0) @@ -926,7 +926,7 @@ var CloudCommander, Util, lHref = CloudFunc.removeLastSlash(lHref); lSubstr = lHref.substr(lHref , lHref.lastIndexOf('/')); - lRet = Util.removeStr(lHref, lSubstr + '/') || '/'; + lRet = Util.removeStrOneTime(lHref, lSubstr + '/') || '/'; return lRet; }; @@ -979,7 +979,7 @@ var CloudCommander, Util, lSize = DOM.getByClass('size', lCurrent); lSize = lSize[0].textContent; /* если это папка - возвращаем слово dir вместо размера*/ - lRet = Util.removeStr(lSize, ['<', '>']); + lRet = Util.removeStrOneTime(lSize, ['<', '>']); return lRet; }; @@ -1211,7 +1211,7 @@ var CloudCommander, Util, lPath = decodeURI(lPath); /* убираем адрес хоста*/ - lPath = Util.removeStr( lPath, [CloudCommander.HOST, CloudFunc.FS] ); + lPath = Util.removeStrOneTime( lPath, [CloudCommander.HOST, CloudFunc.FS] ); return lPath; }; diff --git a/lib/client/keyBinding.js b/lib/client/keyBinding.js index 6e1799fd..fbddb25a 100644 --- a/lib/client/keyBinding.js +++ b/lib/client/keyBinding.js @@ -120,6 +120,9 @@ var CloudCommander, Util, DOM; if(pEvent.shiftKey){ var lUrl = DOM.getCurrentPath(lCurrentFile); + if( DOM.isCurrentIsDir(lCurrentFile) ) + lUrl += '?dir'; + DOM.RESTfull.delete(lUrl, function(){ DOM.deleteCurrent(lCurrentFile); }); diff --git a/lib/server/rest.js b/lib/server/rest.js index e49add33..41913ef2 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -34,7 +34,7 @@ lRet = Util.isContainStr(p.name, lAPIURL); if( lRet ){ - p.name = Util.removeStr(p.name, lAPIURL); + p.name = Util.removeStrOneTime(p.name, lAPIURL); sendData( pParams); } } @@ -71,7 +71,7 @@ onFS(pParams); else{ if(p.name[0] === '/') - p.command = Util.removeStr(p.name, '/'); + p.command = Util.removeStrOneTime(p.name, '/'); switch(p.request.method){ case 'GET': diff --git a/lib/util.js b/lib/util.js index cee2a6b7..c374fb12 100644 --- a/lib/util.js +++ b/lib/util.js @@ -247,6 +247,24 @@ Util = exports || {}; return lRet; }; + /** + * is pStr1 contains pStr2 at begin + * @param pStr1 + * @param pStr2 + */ + Util.isContainStrAtBegin = function(pStr1, pStr2){ + var lRet; + + if( Util.isString(pStr1) && Util.isString(pStr2) ){ + var lLength = pStr2.length, + lSubStr = pStr1.substring(0, lLength); + + lRet = lSubStr === pStr2; + } + + return lRet; + }; + /** * function log pArg if it's not empty * @param pArg