main.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. const { inspect } = require('util')
  2. const robodog = require('@uppy/robodog')
  3. const TRANSLOADIT_KEY = '35c1aed03f5011e982b6afe82599b6a0'
  4. // A trivial template that resizes images, just for example purposes.
  5. //
  6. // "steps": {
  7. // ":original": { "robot": "/upload/handle" },
  8. // "resize": {
  9. // "use": ":original",
  10. // "robot": "/image/resize",
  11. // "width": 100,
  12. // "height": 100,
  13. // "imagemagick_stack": "v1.0.0"
  14. // }
  15. // }
  16. const TEMPLATE_ID = 'bbc273f69e0c4694a5a9d1b587abc1bc'
  17. /**
  18. * robodog.form
  19. */
  20. const formUppy = robodog.form('#test-form', {
  21. debug: true,
  22. fields: ['message'],
  23. restrictions: {
  24. allowedFileTypes: ['.png']
  25. },
  26. waitForEncoding: true,
  27. params: {
  28. auth: { key: TRANSLOADIT_KEY },
  29. template_id: TEMPLATE_ID
  30. },
  31. modal: true,
  32. progressBar: '#test-form .progress'
  33. })
  34. formUppy.on('error', (err) => {
  35. document.querySelector('#test-form .error')
  36. .textContent = err.message
  37. })
  38. formUppy.on('upload-error', (file, err) => {
  39. document.querySelector('#test-form .error')
  40. .textContent = err.message
  41. })
  42. window.formUppy = formUppy
  43. const formUppyWithDashboard = robodog.form('#dashboard-form', {
  44. debug: true,
  45. fields: ['message'],
  46. restrictions: {
  47. allowedFileTypes: ['.png']
  48. },
  49. waitForEncoding: true,
  50. params: {
  51. auth: { key: TRANSLOADIT_KEY },
  52. template_id: TEMPLATE_ID
  53. },
  54. dashboard: '#dashboard-form .dashboard'
  55. })
  56. window.formUppyWithDashboard = formUppyWithDashboard
  57. const dashboard = robodog.dashboard('#dashboard', {
  58. debug: true,
  59. waitForEncoding: true,
  60. params: {
  61. auth: { key: TRANSLOADIT_KEY },
  62. template_id: TEMPLATE_ID
  63. }
  64. })
  65. window.dashboard = dashboard
  66. /**
  67. * robodog.modal
  68. */
  69. function openModal () {
  70. robodog.pick({
  71. restrictions: {
  72. allowedFileTypes: ['.png']
  73. },
  74. waitForEncoding: true,
  75. params: {
  76. auth: { key: TRANSLOADIT_KEY },
  77. template_id: TEMPLATE_ID
  78. },
  79. providers: [
  80. 'webcam'
  81. ]
  82. // if providers need custom config
  83. // webcam: {
  84. // option: 'whatever'
  85. // }
  86. }).then(console.log, console.error)
  87. }
  88. window.openModal = openModal
  89. /**
  90. * robodog.upload
  91. */
  92. window.doUpload = (event) => {
  93. const resultEl = document.querySelector('#upload-result')
  94. const errorEl = document.querySelector('#upload-error')
  95. robodog.upload(event.target.files, {
  96. waitForEncoding: true,
  97. params: {
  98. auth: { key: TRANSLOADIT_KEY },
  99. template_id: TEMPLATE_ID
  100. }
  101. }).then((result) => {
  102. resultEl.classList.remove('hidden')
  103. errorEl.classList.add('hidden')
  104. resultEl.textContent = inspect(result.results)
  105. }, (err) => {
  106. resultEl.classList.add('hidden')
  107. errorEl.classList.remove('hidden')
  108. errorEl.textContent = err.message
  109. })
  110. }