From 47d9512635494f73f9412c9ee6943735cba156cc Mon Sep 17 00:00:00 2001 From: Jakub Szewczyk Date: Tue, 28 Aug 2018 15:37:31 +0200 Subject: [PATCH] Add open capability to connectors --- .../src/capabilities/index.js | 2 ++ .../src/capabilities/open.js | 36 +++++++++++++++++++ .../src/capabilities/index.js | 2 ++ .../src/capabilities/open.js | 36 +++++++++++++++++++ packages/connector-node-v1/src/icons-svg.js | 1 + .../connector-node-v1/src/translations.js | 6 ++++ 6 files changed, 83 insertions(+) create mode 100644 packages/connector-google-drive-v2/src/capabilities/open.js create mode 100644 packages/connector-node-v1/src/capabilities/open.js diff --git a/packages/connector-google-drive-v2/src/capabilities/index.js b/packages/connector-google-drive-v2/src/capabilities/index.js index 92b3bdf4b..203056e16 100644 --- a/packages/connector-google-drive-v2/src/capabilities/index.js +++ b/packages/connector-google-drive-v2/src/capabilities/index.js @@ -5,8 +5,10 @@ import download from './download'; import upload from './upload'; import rename from './rename'; import sort from './sort'; +import open from './open'; const capabilities = [ + open, createFolder, rename, download, diff --git a/packages/connector-google-drive-v2/src/capabilities/open.js b/packages/connector-google-drive-v2/src/capabilities/open.js new file mode 100644 index 000000000..f7b518e54 --- /dev/null +++ b/packages/connector-google-drive-v2/src/capabilities/open.js @@ -0,0 +1,36 @@ +import api from '../api'; +import sanitizeFilename from 'sanitize-filename'; +import icons from '../icons-svg'; +import getMess from '../translations'; + +let label = 'open'; + +function handler(apiOptions, actions) { + const { + navigateToDir, + getSelectedResources + } = actions; + + const selectedResources = getSelectedResources(); + const selectedResourceId = selectedResources[0].id; + navigateToDir(selectedResourceId) +} + +export default (apiOptions, actions) => { + const localeLabel = getMess(apiOptions.locale, label); + const { getSelectedResources } = actions; + return { + id: label, + icon: { svg: icons.open }, + label: localeLabel, + shouldBeAvailable: (apiOptions) => { + let selectedResources = getSelectedResources(); + return ( + selectedResources.length === 1 && + selectedResources[0].type === 'dir' + ); + }, + availableInContexts: ['row', 'toolbar'], + handler: () => handler(apiOptions, actions) + }; +} diff --git a/packages/connector-node-v1/src/capabilities/index.js b/packages/connector-node-v1/src/capabilities/index.js index 6bfe91fe7..1801a7309 100644 --- a/packages/connector-node-v1/src/capabilities/index.js +++ b/packages/connector-node-v1/src/capabilities/index.js @@ -4,8 +4,10 @@ import download from './download'; import upload from './upload'; import rename from './rename'; import sort from './sort'; +import open from './open'; const capabilities = [ + open, createFolder, rename, download, diff --git a/packages/connector-node-v1/src/capabilities/open.js b/packages/connector-node-v1/src/capabilities/open.js new file mode 100644 index 000000000..f7b518e54 --- /dev/null +++ b/packages/connector-node-v1/src/capabilities/open.js @@ -0,0 +1,36 @@ +import api from '../api'; +import sanitizeFilename from 'sanitize-filename'; +import icons from '../icons-svg'; +import getMess from '../translations'; + +let label = 'open'; + +function handler(apiOptions, actions) { + const { + navigateToDir, + getSelectedResources + } = actions; + + const selectedResources = getSelectedResources(); + const selectedResourceId = selectedResources[0].id; + navigateToDir(selectedResourceId) +} + +export default (apiOptions, actions) => { + const localeLabel = getMess(apiOptions.locale, label); + const { getSelectedResources } = actions; + return { + id: label, + icon: { svg: icons.open }, + label: localeLabel, + shouldBeAvailable: (apiOptions) => { + let selectedResources = getSelectedResources(); + return ( + selectedResources.length === 1 && + selectedResources[0].type === 'dir' + ); + }, + availableInContexts: ['row', 'toolbar'], + handler: () => handler(apiOptions, actions) + }; +} diff --git a/packages/connector-node-v1/src/icons-svg.js b/packages/connector-node-v1/src/icons-svg.js index f50b5b18e..63b487582 100644 --- a/packages/connector-node-v1/src/icons-svg.js +++ b/packages/connector-node-v1/src/icons-svg.js @@ -9,6 +9,7 @@ export default { createNewFolder: ``, delete: ``, rename: ``, + open: ``, folder: ``, volumeUp: ``, image: ``, diff --git a/packages/connector-node-v1/src/translations.js b/packages/connector-node-v1/src/translations.js index 81b603208..88c7ed9c6 100644 --- a/packages/connector-node-v1/src/translations.js +++ b/packages/connector-node-v1/src/translations.js @@ -7,6 +7,7 @@ const translations = { remove: 'Remove', download: 'Download', rename: 'Rename', + open: 'Open', creating: 'Creating', creatingName: 'Creating {name}...', create: 'Create', @@ -40,6 +41,7 @@ const translations = { remove: 'Löschen', download: 'Herunterladen', rename: 'Umbenennen', + open: 'Öffnen', creating: 'Wird erstellt', creatingName: '{name} wird angelegt...', create: 'Erstellen', @@ -71,6 +73,7 @@ const translations = { remove: 'Poista', download: 'Lataa', rename: 'Nimeä uudelleen', + open: 'Avata', creating: 'Luodaan', creatingName: 'Luodaan {name}...', create: 'Luo', @@ -104,6 +107,7 @@ const translations = { remove: 'Fjern', download: 'Last ned', rename: 'Gi nytt navn', + open: 'Åpen', creating: 'Opprette', creatingName: 'Opprette {name}...', create: 'Opprett', @@ -137,6 +141,7 @@ const translations = { remove: 'Remove', download: 'Загрузить', rename: 'Переименовать', + open: 'Открытый', creating: 'Создание', creatingName: 'Создание {name}...', create: 'Создать', @@ -170,6 +175,7 @@ const translations = { remove: 'Ta bort', download: 'Hämta', rename: 'Ändra namn', + open: 'Öppen', creating: 'Skapar', creatingName: 'Skapar {name}...', create: 'Skapa',