main.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. const Uppy = require('../../src/core')
  2. const Dashboard = require('../../src/plugins/Dashboard')
  3. const GoogleDrive = require('../../src/plugins/GoogleDrive')
  4. const Dropbox = require('../../src/plugins/Dropbox')
  5. const Instagram = require('../../src/plugins/Instagram')
  6. const Webcam = require('../../src/plugins/Webcam')
  7. const Tus = require('../../src/plugins/Tus')
  8. // const XHRUpload = require('../../src/plugins/XHRUpload')
  9. // const FileInput = require('../../src/plugins/FileInput')
  10. // const MetaData = require('../../src/plugins/MetaData')
  11. // const Informer = require('../../src/plugins/Informer')
  12. // const StatusBar = require('../../src/plugins/StatusBar')
  13. // const DragDrop = require('../../src/plugins/DragDrop')
  14. // const GoldenRetriever = require('../../src/plugins/GoldenRetriever')
  15. const PROTOCOL = location.protocol === 'https:' ? 'https' : 'http'
  16. const TUS_ENDPOINT = PROTOCOL + '://master.tus.io/files/'
  17. const uppy = Uppy({
  18. debug: true,
  19. autoProceed: false,
  20. meta: {
  21. username: 'John'
  22. }
  23. // restrictions: {
  24. // maxFileSize: 300000,
  25. // maxNumberOfFiles: 10,
  26. // minNumberOfFiles: 2,
  27. // allowedFileTypes: ['image/*', 'video/*']
  28. // }
  29. // onBeforeFileAdded: (currentFile, files) => {
  30. // if (currentFile.name === 'pitercss-IMG_0616.jpg') {
  31. // return Promise.resolve()
  32. // }
  33. // return Promise.reject('this is not the file I was looking for')
  34. // },
  35. // onBeforeUpload: (files) => {
  36. // if (Object.keys(files).length < 2) {
  37. // return Promise.reject('too few files')
  38. // }
  39. // return Promise.resolve()
  40. // }
  41. })
  42. .use(Dashboard, {
  43. trigger: '#uppyModalOpener',
  44. target: '.MyForm',
  45. // maxWidth: 350,
  46. // maxHeight: 400,
  47. inline: false,
  48. // disableStatusBar: true,
  49. // disableInformer: true,
  50. getMetaFromForm: true,
  51. // replaceTargetContent: true,
  52. // target: '.MyForm',
  53. hideUploadButton: false,
  54. closeModalOnClickOutside: false,
  55. locale: {
  56. strings: {browse: 'browse'}
  57. },
  58. metaFields: [
  59. { id: 'license', name: 'License', value: 'Creative Commons', placeholder: 'specify license' },
  60. { id: 'caption', name: 'Caption', value: '', placeholder: 'describe what the image is about' }
  61. ]
  62. // note: 'Images and video only, 300kb or less'
  63. })
  64. .use(GoogleDrive, {target: Dashboard, host: 'http://localhost:3020'})
  65. .use(Dropbox, {target: Dashboard, host: 'http://localhost:3020'})
  66. .use(Instagram, {target: Dashboard, host: 'http://localhost:3020'})
  67. .use(Webcam, {target: Dashboard})
  68. .use(Tus, {endpoint: TUS_ENDPOINT, resume: true})
  69. // .use(GoldenRetriever, {serviceWorker: true})
  70. .run()
  71. uppy.on('core:complete', ({ successful, failed }) => {
  72. if (failed.length === 0) {
  73. console.log('UPLOAD SUCCESSFUL!!!')
  74. } else {
  75. console.warn('UPLOAD FAILED!!!')
  76. }
  77. console.log('successful files:', successful)
  78. console.log('failed files:', failed)
  79. })
  80. if ('serviceWorker' in navigator) {
  81. navigator.serviceWorker
  82. .register('/sw.js')
  83. .then((registration) => {
  84. console.log('ServiceWorker registration successful with scope: ', registration.scope)
  85. })
  86. .catch((error) => {
  87. console.log('Registration failed with ' + error)
  88. })
  89. }
  90. var modalTrigger = document.querySelector('#uppyModalOpener')
  91. if (modalTrigger) modalTrigger.click()