From 9ff5982a5bbc143c81f0f5c70403a6d0e0e05713 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 17 May 2019 19:13:58 +0300 Subject: [PATCH] feature(user-menu) add default option: create user menu --- client/modules/user-menu/default-menu.js | 38 +++++++++++++++++++++++ client/modules/user-menu/get-user-menu.js | 6 +--- client/modules/user-menu/index.js | 3 ++ 3 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 client/modules/user-menu/default-menu.js diff --git a/client/modules/user-menu/default-menu.js b/client/modules/user-menu/default-menu.js new file mode 100644 index 00000000..ed940249 --- /dev/null +++ b/client/modules/user-menu/default-menu.js @@ -0,0 +1,38 @@ +'use strict'; + +const data = `'use strict'; + +module.exports = { + 'F2 - Rename file': async ({DOM}) => { + await DOM.renameCurrent(); + }, +}; +`; + +module.exports = { + 'F2 - Rename file': async ({DOM}) => { + await DOM.renameCurrent(); + }, + + 'C - Create User Menu File': async ({DOM, CloudCmd, tryToPromisify}) => { + const { + Dialog, + RESTful, + CurrentInfo, + } = DOM; + + const {dirPath} = CurrentInfo; + const path = `${dirPath}/.cloudcmd.menu.js`; + + const [e] = await tryToPromisify(RESTful.write, path, data); + + if (e) + return Dialog.alert(e); + + await tryToPromisify(CloudCmd.refresh); + DOM.setCurrentByName('.cloudcmd.menu.js'); + + await CloudCmd.EditFile.show(); + }, +}; + diff --git a/client/modules/user-menu/get-user-menu.js b/client/modules/user-menu/get-user-menu.js index 4b3d8923..206161bb 100644 --- a/client/modules/user-menu/get-user-menu.js +++ b/client/modules/user-menu/get-user-menu.js @@ -1,10 +1,6 @@ 'use strict'; -const defaultUserMenu = { - 'F2 - Rename file': async ({DOM}) => { - DOM.renameCurrent(); - }, -}; +const defaultUserMenu = require('./default-menu.js'); module.exports = (menuFn) => { if (!menuFn) diff --git a/client/modules/user-menu/index.js b/client/modules/user-menu/index.js index 995d58d9..03a048f2 100644 --- a/client/modules/user-menu/index.js +++ b/client/modules/user-menu/index.js @@ -11,6 +11,8 @@ const createElement = require('@cloudcmd/create-element'); const tryCatch = require('try-catch'); const tryToCatch = require('try-to-catch/legacy'); +const tryToPromisify = require('../../../common/try-to-promisify.js'); + const Images = require('../../dom/images'); const Dialog = require('../../dom/dialog'); const getUserMenu = require('./get-user-menu'); @@ -122,6 +124,7 @@ const runUserMenu = async (value, options, userMenu) => { const [e] = await tryToCatch(userMenu[value], { DOM, CloudCmd, + tryToPromisify, }); if (e)