From 7e137538bb05f3c3564221537559a0c33a109dd4 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 26 Aug 2015 03:59:27 -0400 Subject: [PATCH] feature(menu) rework of upload to/from cloud --- css/icons.css | 4 +- lib/client/menu.js | 98 ++++++++++++++++++++-------------------------- 2 files changed, 44 insertions(+), 58 deletions(-) diff --git a/css/icons.css b/css/icons.css index 2e82062c..751b1b75 100644 --- a/css/icons.css +++ b/css/icons.css @@ -63,12 +63,12 @@ content : '\e80d '; } -.icon-upload-to::before { +.icon-upload-to-cloud::before { font-family : 'Fontello'; content : '\e80e '; } -.icon-from-cloud::before { +.icon-upload-from-cloud::before { font-family : 'Fontello'; content : '\e80f '; } diff --git a/lib/client/menu.js b/lib/client/menu.js index 8519e793..bc947ec0 100644 --- a/lib/client/menu.js +++ b/lib/client/menu.js @@ -140,7 +140,7 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; 'New' : { 'File' : DOM.promptNewFile, 'Directory' : DOM.promptNewDir, - 'From Cloud' : getFromPicker, + 'Upload From Cloud': uploadFromCloud, }, 'Upload' : function() { CloudCmd.Upload.show(); @@ -154,45 +154,49 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; return menu; } + function curry(fn) { + var args = [].slice.call(arguments, 1); + + return function() { + fn.apply(null, args.concat(arguments)); + }; + } + function loadFileMenuData(callback) { isAuth(function(is) { - getUploadTo(function(menuUpload) { - var show = function(name) { - CloudCmd[name].show(); + var show = function(name) { + CloudCmd[name].show(); + }, + Dialog = DOM.Dialog, + menuData = getMenuData(is), + menu = { + 'View' : curry(show, 'View'), + 'Edit' : curry(show, 'Edit'), + 'Rename' : function() { + setTimeout(DOM.renameCurrent, 100); }, - Dialog = DOM.Dialog, - menuData = getMenuData(is), - menu = { - 'View' : Util.exec.with(show, 'View'), - 'Edit' : Util.exec.with(show, 'Edit'), - 'Rename' : function() { - setTimeout(DOM.renameCurrent, 100); - }, - 'Delete' : function() { - CloudCmd.Operation.show('delete'); - }, - 'Pack' : function() { - CloudCmd.Operation.show('pack'); - }, - 'Extract' : function() { - CloudCmd.Operation.show('extract'); - }, - 'Upload To' : {}, - 'Download' : download, - 'Cut' : function() { - isCurrent(Buffer.cut, Dialog.alert.noFiles); - }, - 'Copy' : function() { - isCurrent(Buffer.copy, Dialog.alert.noFiles); - }, - }; - - menu['Upload To'] = menuUpload; - - Util.copyObj(menu, menuData); - - callback(is, menu); - }); + 'Delete' : function() { + CloudCmd.Operation.show('delete'); + }, + 'Pack' : function() { + CloudCmd.Operation.show('pack'); + }, + 'Extract' : function() { + CloudCmd.Operation.show('extract'); + }, + 'Download' : download, + 'Upload To Cloud': curry(uploadTo, 'FilePicker'), + 'Cut' : function() { + isCurrent(Buffer.cut, Dialog.alert.noFiles); + }, + 'Copy' : function() { + isCurrent(Buffer.copy, Dialog.alert.noFiles); + }, + }; + + Util.copyObj(menu, menuData); + + callback(is, menu); }); } @@ -247,24 +251,6 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; return notCall; } - function getUploadTo(callback) { - DOM.Files.get('modules', function(error, modules) { - var menu = {}, - storage = Util.findObjByNameInArr(modules, 'storage'), - items = Util.getNamesFromObjArray(storage) || []; - - items - .filter(function(name) { - return name === 'FilePicker'; - }) - .forEach(function(name) { - menu[name] = Util.exec.with(uploadTo, name); - }); - - callback(menu); - }); - } - function uploadTo(nameModule) { Info.getData(function(error, data) { var name = Info.name; @@ -278,7 +264,7 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; CloudCmd.log('Uploading to ' + name + '...'); } - function getFromPicker() { + function uploadFromCloud() { Images.show.load('top'); CloudCmd.execFromModule('FilePicker', 'saveFile', function(name, data) {