From a14081faa6d7807a33522d1d2874ee72c6b31caf Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 5 Sep 2014 06:44:49 -0400 Subject: [PATCH] feature(menu) download: selected and current files --- lib/client/menu.js | 54 ++++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 21 deletions(-) diff --git a/lib/client/menu.js b/lib/client/menu.js index e8d59cbd..d129df60 100644 --- a/lib/client/menu.js +++ b/lib/client/menu.js @@ -226,30 +226,42 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; } function download() { - var element, - TIME = 1000, - apiURL = CloudFunc.apiURL, - FS = CloudFunc.FS, - date = Date.now(), - path = Info.path, - id = DOM.load.getIdBySrc(path), - dir = Info.isDir ? '&&json' : ''; + var TIME = 1000, + apiURL = CloudFunc.apiURL, + FS = CloudFunc.FS, + date = Date.now(), + current = Info.element, + files = DOM.getSelectedFiles(), + selected = ~files.indexOf(current); - Util.log('downloading file ' + path +'...'); + if (!selected) + files.push(current); - path = apiURL + FS + path + '?download' + dir; - - element = DOM.load({ - id : id + '-' + date, - name : 'iframe', - async : false, - className : 'hidden', - src : path, + files.forEach(function(file) { + var element, + path = DOM.getCurrentPath(file), + id = DOM.load.getIdBySrc(path), + isDir = DOM.isCurrentIsDir(file), + dir = isDir ? '&&json' : ''; + + Util.log('downloading file ' + path +'...'); + + path = apiURL + FS + path + '?download' + dir; + + element = DOM.load({ + id : id + '-' + date, + name : 'iframe', + async : false, + className : 'hidden', + src : path, + }); + + setTimeout(function() { + document.body.removeChild(element); + }, TIME); + + DOM.toggleSelectedFile(file); }); - - setTimeout(function() { - document.body.removeChild(element); - }, TIME); } function listener(event) {