main.js 3.1 KB

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