From fd5a1e7bb0b7814e84affbbd23f0d5f536cd6a5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Mon, 29 Apr 2019 14:18:02 +0200 Subject: [PATCH] robodog: actually support specifying Dashboard options --- examples/transloadit/main.js | 2 + .../@uppy/robodog/src/addDashboardPlugin.js | 53 +++++++++++++++++++ packages/@uppy/robodog/src/dashboard.js | 4 +- packages/@uppy/robodog/src/form.js | 4 +- packages/@uppy/robodog/src/pick.js | 4 +- 5 files changed, 61 insertions(+), 6 deletions(-) create mode 100644 packages/@uppy/robodog/src/addDashboardPlugin.js diff --git a/examples/transloadit/main.js b/examples/transloadit/main.js index b01ceba6b..c9096a09e 100644 --- a/examples/transloadit/main.js +++ b/examples/transloadit/main.js @@ -54,6 +54,7 @@ const formUppyWithDashboard = robodog.form('#dashboard-form', { allowedFileTypes: ['.png'] }, waitForEncoding: true, + note: 'Only PNG files please!', params: { auth: { key: TRANSLOADIT_KEY }, template_id: TEMPLATE_ID @@ -66,6 +67,7 @@ window.formUppyWithDashboard = formUppyWithDashboard const dashboard = robodog.dashboard('#dashboard', { debug: true, waitForEncoding: true, + note: 'Images will be resized with Transloadit', params: { auth: { key: TRANSLOADIT_KEY }, template_id: TEMPLATE_ID diff --git a/packages/@uppy/robodog/src/addDashboardPlugin.js b/packages/@uppy/robodog/src/addDashboardPlugin.js new file mode 100644 index 000000000..3adfbdc76 --- /dev/null +++ b/packages/@uppy/robodog/src/addDashboardPlugin.js @@ -0,0 +1,53 @@ +const Dashboard = require('@uppy/dashboard') + +const dashboardOptionNames = [ + 'metaFields', + 'width', + 'height', + 'thumbnailWidth', + 'showLinkToFileUploadResult', + 'showProgressDetails', + 'hideRetryButton', + 'hidePauseResumeCancelButtons', + 'hideProgressAfterFinish', + 'note', + 'disableStatusBar', + 'disableInformer', + 'disableThumbnailGenerator', + 'showSelectedFiles' +] + +const modalDashboardOptionNames = [ + 'trigger', + 'closeModalOnClickOutside', + 'closeAfterFinish', + 'disablePageScrollWhenModalOpen', + 'animateOpenClose', + 'onRequestCloseModal', + 'browserBackButtonClose' +] + +function addDashboardPlugin (uppy, opts, overrideOpts) { + const dashboardOpts = {} + dashboardOptionNames.forEach((key) => { + if (opts.hasOwnProperty(key)) { + dashboardOpts[key] = opts[key] + } + }) + + const inline = overrideOpts.inline == null ? dashboardOpts.inline : overrideOpts.inline + if (inline === false) { + modalDashboardOptionNames.forEach((key) => { + if (opts.hasOwnProperty(key)) { + dashboardOpts[key] = opts[key] + } + }) + } + + uppy.use(Dashboard, { + ...dashboardOpts, + ...overrideOpts + }) +} + +module.exports = addDashboardPlugin diff --git a/packages/@uppy/robodog/src/dashboard.js b/packages/@uppy/robodog/src/dashboard.js index 79e9a014f..1cda315f0 100644 --- a/packages/@uppy/robodog/src/dashboard.js +++ b/packages/@uppy/robodog/src/dashboard.js @@ -1,5 +1,5 @@ -const Dashboard = require('@uppy/dashboard') const createUppy = require('./createUppy') +const addDashboardPlugin = require('./addDashboardPlugin') const addTransloaditPlugin = require('./addTransloaditPlugin') const addProviders = require('./addProviders') @@ -9,7 +9,7 @@ function dashboard (target, opts = {}) { const pluginId = 'Dashboard' const uppy = createUppy(opts) addTransloaditPlugin(uppy, opts) - uppy.use(Dashboard, { + addDashboardPlugin(uppy, opts, { id: pluginId, inline, target, diff --git a/packages/@uppy/robodog/src/form.js b/packages/@uppy/robodog/src/form.js index 364fa1461..d62038b4d 100644 --- a/packages/@uppy/robodog/src/form.js +++ b/packages/@uppy/robodog/src/form.js @@ -1,10 +1,10 @@ const Uppy = require('@uppy/core') const Form = require('@uppy/form') const StatusBar = require('@uppy/status-bar') -const Dashboard = require('@uppy/dashboard') const findDOMElement = require('@uppy/utils/lib/findDOMElement') const AttachFileInputs = require('./AttachFileInputs') const TransloaditFormResult = require('./TransloaditFormResult') +const addDashboardPlugin = require('./addDashboardPlugin') const addTransloaditPlugin = require('./addTransloaditPlugin') const addProviders = require('./addProviders') @@ -51,7 +51,7 @@ function form (target, opts) { dashboardOpts.inline = true dashboardOpts.hideUploadButton = true } - uppy.use(Dashboard, dashboardOpts) + addDashboardPlugin(uppy, opts, dashboardOpts) if (Array.isArray(opts.providers)) { addProviders(uppy, opts.providers, { diff --git a/packages/@uppy/robodog/src/pick.js b/packages/@uppy/robodog/src/pick.js index 4f308c025..8ae82deb4 100644 --- a/packages/@uppy/robodog/src/pick.js +++ b/packages/@uppy/robodog/src/pick.js @@ -1,5 +1,5 @@ -const Dashboard = require('@uppy/dashboard') const createUppy = require('./createUppy') +const addDashboardPlugin = require('./addDashboardPlugin') const addTransloaditPlugin = require('./addTransloaditPlugin') const addProviders = require('./addProviders') @@ -13,7 +13,7 @@ function pick (opts = {}) { allowMultipleUploads: false }) addTransloaditPlugin(uppy, opts) - uppy.use(Dashboard, { + addDashboardPlugin(uppy, opts, { id: pluginId, target, closeAfterFinish: true