From 85217165b413008f89caeb9e598c852ba8690fe3 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 25 Feb 2013 08:30:43 -0500 Subject: [PATCH] added ability to delete files --- ChangeLog | 2 ++ lib/client/dom.js | 44 +++++++++++++++++++++----------------------- lib/server/rest.js | 27 ++++++++++++++++++++++----- 3 files changed, 45 insertions(+), 28 deletions(-) diff --git a/ChangeLog b/ChangeLog index dac26d39..8f61f5be 100644 --- a/ChangeLog +++ b/ChangeLog @@ -178,6 +178,8 @@ generation of json of directory listing. * Added ability save files on Ctrl+S in CodeMirror. +* Added ability to delete files. + 2012.12.12, Version 0.1.8 diff --git a/lib/client/dom.js b/lib/client/dom.js index 9e39beaf..400c8eab 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -1273,31 +1273,29 @@ var CloudCommander, Util, DOM.deleteCurrent = function(pCurrent){ var lCurrent = pCurrent || DOM.getCurrentFile(), lParent = lCurrent.parentElement, - lName = DOM.getCurrentName(lCurrent); + lName = DOM.getCurrentName(lCurrent), + lUrl = DOM.getCurrentPath(lCurrent); - if(lCurrent && lParent){ - if(lName !== '..'){ - var lNext = lCurrent.nextSibling; - var lPrevious = lCurrent.previousSibling; - if(lNext) - DOM.setCurrentFile(lNext); - else if(lPrevious) - DOM.setCurrentFile(lPrevious); - - lParent.removeChild(lCurrent); - } - else - DOM.addCloudStatus({ - code : -1, - msg : 'Could not remove parrent dir' - }); - } - else - DOM.addCloudStatus({ - code : -1, - msg : 'Current file (or parent of current) could not be empty' + if(lCurrent && lParent && lName !== '..'){ + DOM.ajax({ + method : 'DELETE', + url : lUrl, + error : DOM.Images.showError, + success : function(pData){ + var lNext = lCurrent.nextSibling, + lPrevious = lCurrent.previousSibling; + + if(lNext) + DOM.setCurrentFile(lNext); + else if(lPrevious) + DOM.setCurrentFile(lPrevious); + + lParent.removeChild(lCurrent); + Util.log(pData); + } }); - + } + return lCurrent; }; diff --git a/lib/server/rest.js b/lib/server/rest.js index c851ba1a..390afa92 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -105,9 +105,10 @@ function onFS(pParams){ var lRet = main.checkParams(pParams, ['method']); if(lRet){ - var p = pParams; + var p = pParams, + lQuery = main.getQuery(p.request); + p.name = Util.removeStr(pParams.name, CloudFunc.FS) || '/'; - console.log(p.name); switch(p.method){ case 'GET': fs.stat(p.name, function(pError, pStat){ @@ -132,8 +133,7 @@ break; case 'PUT': - var lQuery = main.getQuery(p.request); - p.name = Util.removeStr(p.name, '?dir'); + p.name = Util.removeStr(p.name, '?dir'); if(lQuery === 'dir') fs.mkdir(p.name, function(pError){ @@ -153,11 +153,28 @@ p.request.on('end', function(){ main.sendResponse(pParams, 'writed: ' + p.name); }); - + //p.request.pipe(process.stdout); p.request.pipe(lWriteStream); } break; + case 'DELETE': + if(lQuery === 'dir') + fs.rmdir(p.name, function(pError){ + if(!pError) + main.sendResponse(pParams, 'Folder ' + p.name + ' removed.'); + else + main.sendError(pParams, pError); + }); + else + fs.unlink(p.name, function(pError){ + if(!pError) + main.sendResponse(pParams, 'File ' + p.name + ' removed.'); + else + main.sendError(pParams, pError); + }); + + break; } } return lRet;