main.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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 DragDrop = require('../../src/plugins/FileInput')
  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 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. locale: {
  56. strings: {browse: 'wow'}
  57. },
  58. note: 'Images and video only, 300kb or less'
  59. })
  60. .use(GoogleDrive, {target: Dashboard, host: 'http://localhost:3020'})
  61. .use(Dropbox, {target: Dashboard, host: 'http://localhost:3020'})
  62. .use(Instagram, {target: Dashboard, host: 'http://localhost:3020'})
  63. // .use(FileInput, {target: '.Uppy', locale: {
  64. // strings: {selectToUpload: 'Выберите файл для загрузки'}
  65. // }})
  66. // .use(DragDrop, {target: 'body', locale: {
  67. // strings: {chooseFile: 'Выберите файл'}
  68. // }})
  69. // .use(ProgressBar, {target: 'body'})
  70. .use(Webcam, {
  71. target: Dashboard,
  72. countdown: 5,
  73. locale: {
  74. strings: { smile: 'Улыбочку!' }
  75. }
  76. })
  77. // .use(Multipart, {endpoint: '//api2.transloadit.com'})
  78. .use(Tus10, {endpoint: TUS_ENDPOINT, resume: true})
  79. // .use(Informer, {target: Dashboard})
  80. // .use(StatusBar, {target: Dashboard})
  81. .use(MetaData, {
  82. fields: [
  83. { id: 'resizeTo', name: 'Resize to', value: 1200, placeholder: 'specify future image size' },
  84. { id: 'description', name: 'Description', value: 'none', placeholder: 'describe what the file is for' }
  85. ]
  86. })
  87. uppy.run()
  88. uppy.on('core:success', (fileList) => {
  89. console.log('UPLOAD SUCCESSFUL!!!')
  90. console.log(fileList)
  91. })
  92. // uppy.emit('informer', 'Smile!', 'info', 2000)
  93. var modalTrigger = document.querySelector('#uppyModalOpener')
  94. if (modalTrigger) modalTrigger.click()