main.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. const Uppy = require('../../src/core/Core.js')
  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 Tus10 = require('../../src/plugins/Tus10')
  8. // const Multipart = require('../../src/plugins/Multipart')
  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 RestoreFiles = require('../../src/plugins/RestoreFiles')
  15. const PROTOCOL = location.protocol === 'https:' ? 'https' : 'http'
  16. const TUS_ENDPOINT = PROTOCOL + '://master.tus.io/files/'
  17. // import ru_RU from '../../src/locales/ru_RU.js'
  18. // import MagicLog from '../../src/plugins/MagicLog'
  19. // import PersistentState from '../../src/plugins/PersistentState'
  20. const uppy = Uppy({
  21. debug: true,
  22. autoProceed: false,
  23. meta: {
  24. username: 'John'
  25. }
  26. // restrictions: {
  27. // maxFileSize: 300000,
  28. // maxNumberOfFiles: 10,
  29. // minNumberOfFiles: 2,
  30. // allowedFileTypes: ['image/*', 'video/*']
  31. // }
  32. // onBeforeFileAdded: (currentFile, files) => {
  33. // if (currentFile.name === 'pitercss-IMG_0616.jpg') {
  34. // return Promise.resolve()
  35. // }
  36. // return Promise.reject('this is not the file I was looking for')
  37. // },
  38. // onBeforeUpload: (files) => {
  39. // if (Object.keys(files).length < 2) {
  40. // return Promise.reject('too few files')
  41. // }
  42. // return Promise.resolve()
  43. // }
  44. })
  45. .use(Dashboard, {
  46. trigger: '#uppyModalOpener',
  47. // maxWidth: 350,
  48. // maxHeight: 400,
  49. inline: false,
  50. // disableStatusBar: true,
  51. // disableInformer: true,
  52. setMetaFromTargetForm: true,
  53. // replaceTargetContent: true,
  54. target: '.MyForm',
  55. hideUploadButton: true,
  56. locale: {
  57. strings: {browse: 'browse'}
  58. }
  59. // note: 'Images and video only, 300kb or less'
  60. })
  61. // .use(GoogleDrive, {target: Dashboard, host: 'http://localhost:3020'})
  62. .use(Dropbox, {target: Dashboard, host: 'http://localhost:3020'})
  63. .use(Instagram, {target: Dashboard, host: 'http://localhost:3020'})
  64. .use(Tus10, {endpoint: TUS_ENDPOINT, resume: false})
  65. .use(MetaData, {
  66. fields: [
  67. { id: 'license', name: 'License', value: 'Creative Commons', placeholder: 'specify license' },
  68. { id: 'caption', name: 'Caption', value: 'none', placeholder: 'describe what the image is about' }
  69. ]
  70. })
  71. .use(RestoreFiles, {serviceWorker: true})
  72. .run()
  73. uppy.on('core:success', (fileList) => {
  74. console.log('UPLOAD SUCCESSFUL!!!')
  75. console.log(fileList)
  76. })
  77. const isServiceWorkerControllerReady = new Promise(resolve => {
  78. if (navigator.serviceWorker.controller) return resolve()
  79. navigator.serviceWorker.addEventListener('controllerchange', e => resolve())
  80. })
  81. if ('serviceWorker' in navigator) {
  82. navigator.serviceWorker
  83. .register('/sw.js')
  84. .then((registration) => {
  85. console.log('ServiceWorker registration successful with scope: ', registration.scope)
  86. return isServiceWorkerControllerReady
  87. })
  88. .then(() => {
  89. uppy.emit('core:file-sw-ready')
  90. })
  91. .catch((error) => {
  92. console.log('Registration failed with ' + error)
  93. })
  94. }
  95. // uppy.emit('informer', 'Smile!', 'info', 2000)
  96. var modalTrigger = document.querySelector('#uppyModalOpener')
  97. if (modalTrigger) modalTrigger.click()