From f36d71dec39a87bf88abb0fcffbf5a5fd0331250 Mon Sep 17 00:00:00 2001 From: Marcin Rataj Date: Wed, 19 Sep 2018 13:03:43 +0200 Subject: [PATCH] feat: separate labels for Image, Video and Audio --- add-on/_locales/en/messages.json | 18 ++++---- add-on/src/lib/context-menus.js | 72 +++++++++++++------------------- 2 files changed, 40 insertions(+), 50 deletions(-) diff --git a/add-on/_locales/en/messages.json b/add-on/_locales/en/messages.json index e964f7e8a..e610975cf 100644 --- a/add-on/_locales/en/messages.json +++ b/add-on/_locales/en/messages.json @@ -87,16 +87,20 @@ "message": "Add Selected Text to IPFS", "description": "An item in right-click context menu (contextMenu_AddToIpfsSelection)" }, - "contextMenu_AddToIpfsRawCid": { - "message": "Add This Object to IPFS", - "description": "An item in right-click context menu (contextMenu_AddToIpfsRawCid)" + "contextMenu_AddToIpfsImage": { + "message": "Add this Image to IPFS", + "description": "An item in right-click context menu (contextMenu_AddToIpfsImage)" }, - "contextMenu_AddToIpfsKeepFilename": { - "message": "Add This Object to IPFS (Keep Filename)", - "description": "An item in right-click context menu (contextMenu_AddToIpfsKeepFilename)" + "contextMenu_AddToIpfsVideo": { + "message": "Add this Video to IPFS", + "description": "An item in right-click context menu (contextMenu_AddToIpfsVideo)" + }, + "contextMenu_AddToIpfsAudio": { + "message": "Add this Audio to IPFS", + "description": "An item in right-click context menu (contextMenu_AddToIpfsAudio)" }, "contextMenu_AddToIpfsLink": { - "message": "Add This Link to IPFS", + "message": "Add Link Destination to IPFS", "description": "An item in right-click context menu (contextMenu_AddToIpfsLink)" }, "notify_addonIssueTitle": { diff --git a/add-on/src/lib/context-menus.js b/add-on/src/lib/context-menus.js index 0c7213886..703fb8173 100644 --- a/add-on/src/lib/context-menus.js +++ b/add-on/src/lib/context-menus.js @@ -28,12 +28,23 @@ async function findUrlForContext (context, contextField) { module.exports.findUrlForContext = findUrlForContext const contextMenuAddToIpfsSelection = 'contextMenu_AddToIpfsSelection' -const contextMenuAddToIpfsRawCid = 'contextMenu_AddToIpfsRawCid' -const contextMenuAddToIpfsKeepFilename = 'contextMenu_AddToIpfsKeepFilename' +// const contextMenuAddToIpfsRawCid = 'contextMenu_AddToIpfsRawCid' +const contextMenuAddToIpfsImage = 'contextMenu_AddToIpfsImage' +const contextMenuAddToIpfsVideo = 'contextMenu_AddToIpfsVideo' +const contextMenuAddToIpfsAudio = 'contextMenu_AddToIpfsAudio' const contextMenuAddToIpfsLink = 'contextMenu_AddToIpfsLink' const contextMenuCopyCanonicalAddress = 'panelCopy_currentIpfsAddress' const contextMenuCopyAddressAtPublicGw = 'panel_copyCurrentPublicGwUrl' +// menu items that are enabled only when API is online +const apiMenuItems = [ + contextMenuAddToIpfsSelection, + contextMenuAddToIpfsImage, + contextMenuAddToIpfsVideo, + contextMenuAddToIpfsAudio, + contextMenuAddToIpfsLink +] + function createContextMenus (getState, runtime, ipfsPathValidator, { onAddFromContext, onCopyCanonicalAddress, onCopyAddressAtPublicGw }) { let copyAddressContexts = ['page', 'image', 'video', 'audio', 'link'] if (runtime.isFirefox) { @@ -41,41 +52,21 @@ function createContextMenus (getState, runtime, ipfsPathValidator, { onAddFromCo copyAddressContexts.push('page_action') } try { - browser.contextMenus.create({ - id: contextMenuAddToIpfsSelection, - title: browser.i18n.getMessage(contextMenuAddToIpfsSelection), - contexts: ['selection'], - documentUrlPatterns: [''], - enabled: false, - onclick: (context) => onAddFromContext(context, 'selectionText') - }) - - browser.contextMenus.create({ - id: contextMenuAddToIpfsRawCid, - title: browser.i18n.getMessage(contextMenuAddToIpfsRawCid), - contexts: ['image', 'video', 'audio'], - documentUrlPatterns: [''], - enabled: false, - onclick: (context) => onAddFromContext(context, 'srcUrl') - }) - - browser.contextMenus.create({ - id: contextMenuAddToIpfsKeepFilename, - title: browser.i18n.getMessage(contextMenuAddToIpfsKeepFilename), - contexts: ['image', 'video', 'audio'], - documentUrlPatterns: [''], - enabled: false, - onclick: (context) => onAddFromContext(context, 'srcUrl', { wrapWithDirectory: true }) - }) - - browser.contextMenus.create({ - id: contextMenuAddToIpfsLink, - title: browser.i18n.getMessage(contextMenuAddToIpfsLink), - contexts: ['link'], - documentUrlPatterns: [''], - enabled: false, - onclick: (context) => onAddFromContext(context, 'linkUrl', { wrapWithDirectory: true }) - }) + const createAddToIpfsMenuItem = (menuItemId, contextName, contextField, ipfsAddOptions) => { + browser.contextMenus.create({ + id: menuItemId, + title: browser.i18n.getMessage(menuItemId), + contexts: [contextName], + documentUrlPatterns: [''], + enabled: false, + onclick: (context) => onAddFromContext(context, 'srcUrl', ipfsAddOptions) + }) + } + createAddToIpfsMenuItem(contextMenuAddToIpfsSelection, 'selection', 'selectionText') + createAddToIpfsMenuItem(contextMenuAddToIpfsImage, 'image', 'srcUrl', { wrapWithDirectory: true }) + createAddToIpfsMenuItem(contextMenuAddToIpfsVideo, 'video', 'srcUrl', { wrapWithDirectory: true }) + createAddToIpfsMenuItem(contextMenuAddToIpfsAudio, 'audio', 'srcUrl', { wrapWithDirectory: true }) + createAddToIpfsMenuItem(contextMenuAddToIpfsLink, 'link', 'linkUrl', { wrapWithDirectory: true }) browser.contextMenus.create({ id: contextMenuCopyCanonicalAddress, @@ -110,12 +101,7 @@ function createContextMenus (getState, runtime, ipfsPathValidator, { onAddFromCo async update (changedTabId) { try { const canUpload = getState().peerCount > 0 - const items = [ contextMenuAddToIpfsSelection, - contextMenuAddToIpfsRawCid, - contextMenuAddToIpfsKeepFilename, - contextMenuAddToIpfsLink - ] - for (let item of items) { + for (let item of apiMenuItems) { await browser.contextMenus.update(item, { enabled: canUpload }) } if (changedTabId) {