Dashboard.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. const Uppy = require('@uppy/core/src')
  2. const Dashboard = require('@uppy/dashboard/src')
  3. const Instagram = require('@uppy/instagram/src')
  4. const Facebook = require('@uppy/facebook/src')
  5. const OneDrive = require('@uppy/onedrive/src')
  6. const Dropbox = require('@uppy/dropbox/src')
  7. const GoogleDrive = require('@uppy/google-drive/src')
  8. const Url = require('@uppy/url/src')
  9. const Webcam = require('@uppy/webcam/src')
  10. const GoldenRetriever = require('@uppy/golden-retriever/src')
  11. const Tus = require('@uppy/tus/src')
  12. const AwsS3 = require('@uppy/tus/src')
  13. const XHRUpload = require('@uppy/xhr-upload/src')
  14. const Transloadit = require('@uppy/transloadit/src')
  15. const Form = require('@uppy/form/src')
  16. // DEV CONFIG: pick an uploader
  17. const UPLOADER = 'tus'
  18. // const UPLOADER = 's3'
  19. // const UPLOADER = 'xhr'
  20. // const UPLOADER = 'transloadit'
  21. // DEV CONFIG: Endpoint URLs
  22. const COMPANION_URL = 'http://localhost:3020'
  23. const TUS_ENDPOINT = 'https://master.tus.io/files/'
  24. const XHR_ENDPOINT = 'https://upload-endpoint.uppy.io/upload'
  25. // DEV CONFIG: Transloadit keys
  26. const TRANSLOADIT_KEY = '...'
  27. const TRANSLOADIT_TEMPLATE = '...'
  28. // DEV CONFIG: enable or disable Golden Retriever
  29. const RESTORE = false
  30. // Rest is implementation! Obviously edit as necessary...
  31. module.exports = () => {
  32. const uppyDashboard = Uppy({
  33. logger: Uppy.debugLogger,
  34. meta: {
  35. username: 'John',
  36. license: 'Creative Commons'
  37. }
  38. })
  39. .use(Dashboard, {
  40. trigger: '#pick-files',
  41. // inline: true,
  42. target: '.foo',
  43. metaFields: [
  44. { id: 'license', name: 'License', placeholder: 'specify license' },
  45. { id: 'caption', name: 'Caption', placeholder: 'add caption' }
  46. ],
  47. showProgressDetails: true,
  48. proudlyDisplayPoweredByUppy: true,
  49. note: '2 files, images and video only'
  50. })
  51. .use(GoogleDrive, { target: Dashboard, companionUrl: COMPANION_URL })
  52. .use(Instagram, { target: Dashboard, companionUrl: COMPANION_URL })
  53. .use(Dropbox, { target: Dashboard, companionUrl: COMPANION_URL })
  54. .use(Facebook, { target: Dashboard, companionUrl: COMPANION_URL })
  55. .use(OneDrive, { target: Dashboard, companionUrl: COMPANION_URL })
  56. .use(Url, { target: Dashboard, companionUrl: COMPANION_URL })
  57. .use(Webcam, { target: Dashboard })
  58. .use(Form, { target: '#upload-form' })
  59. switch (UPLOADER) {
  60. case 'tus':
  61. uppyDashboard.use(Tus, { endpoint: TUS_ENDPOINT })
  62. break
  63. case 's3':
  64. uppyDashboard.use(AwsS3, { companionUrl: COMPANION_URL })
  65. break
  66. case 'xhr':
  67. uppyDashboard.use(XHRUpload, { endpoint: XHR_ENDPOINT, bundle: true })
  68. break
  69. case 'transloadit':
  70. uppyDashboard.use(Transloadit, {
  71. params: {
  72. auth: { key: TRANSLOADIT_KEY },
  73. template_id: TRANSLOADIT_TEMPLATE
  74. }
  75. })
  76. break
  77. }
  78. if (RESTORE) {
  79. uppyDashboard.use(GoldenRetriever, { serviceWorker: true })
  80. }
  81. window.uppy = uppyDashboard
  82. uppyDashboard.on('complete', (result) => {
  83. if (result.failed.length === 0) {
  84. console.log('Upload successful 😀')
  85. } else {
  86. console.warn('Upload failed 😞')
  87. }
  88. console.log('successful files:', result.successful)
  89. console.log('failed files:', result.failed)
  90. })
  91. const modalTrigger = document.querySelector('#pick-files')
  92. if (modalTrigger) modalTrigger.click()
  93. }