|
@@ -1,5 +1,16 @@
|
|
|
-const { inspect } = require('node:util')
|
|
|
-const robodog = require('@uppy/robodog')
|
|
|
+import Transloadit, { COMPANION_URL } from '@uppy/transloadit'
|
|
|
+import Uppy from '@uppy/core'
|
|
|
+import Form from '@uppy/form'
|
|
|
+import Dashboard from '@uppy/dashboard'
|
|
|
+import RemoteSources from '@uppy/remote-sources'
|
|
|
+import ImageEditor from '@uppy/image-editor'
|
|
|
+import Webcam from '@uppy/webcam'
|
|
|
+import ProgressBar from '@uppy/progress-bar'
|
|
|
+
|
|
|
+import '@uppy/core/dist/style.css'
|
|
|
+import '@uppy/dashboard/dist/style.css'
|
|
|
+import '@uppy/image-editor/dist/style.css'
|
|
|
+import '@uppy/progress-bar/dist/style.css'
|
|
|
|
|
|
const TRANSLOADIT_KEY = '35c1aed03f5011e982b6afe82599b6a0'
|
|
|
|
|
@@ -17,23 +28,43 @@ const TRANSLOADIT_KEY = '35c1aed03f5011e982b6afe82599b6a0'
|
|
|
const TEMPLATE_ID = 'bbc273f69e0c4694a5a9d1b587abc1bc'
|
|
|
|
|
|
|
|
|
- * robodog.form
|
|
|
+ * Form
|
|
|
*/
|
|
|
|
|
|
-const formUppy = robodog.form('#test-form', {
|
|
|
+
|
|
|
+
|
|
|
+const button = document.createElement('button')
|
|
|
+button.type = 'button'
|
|
|
+button.innerText = 'Select files'
|
|
|
+button.id = 'select-files'
|
|
|
+const fileInput = document.querySelector('#test-form input[type=file]')
|
|
|
+fileInput.replaceWith(button)
|
|
|
+
|
|
|
+const formUppy = new Uppy({
|
|
|
debug: true,
|
|
|
- fields: ['message'],
|
|
|
+ autoProceed: true,
|
|
|
restrictions: {
|
|
|
allowedFileTypes: ['.png'],
|
|
|
},
|
|
|
- waitForEncoding: true,
|
|
|
- params: {
|
|
|
- auth: { key: TRANSLOADIT_KEY },
|
|
|
- template_id: TEMPLATE_ID,
|
|
|
- },
|
|
|
- modal: true,
|
|
|
- progressBar: '#test-form .progress',
|
|
|
})
|
|
|
+ .use(Dashboard, {
|
|
|
+ trigger: '#select-files',
|
|
|
+ closeAfterFinish: true,
|
|
|
+ note: 'Only PNG files please!',
|
|
|
+ })
|
|
|
+ .use(RemoteSources, { companionUrl: COMPANION_URL })
|
|
|
+ .use(Form, {
|
|
|
+ target: '#test-form',
|
|
|
+ fields: ['message'],
|
|
|
+ addResultToForm: true,
|
|
|
+ })
|
|
|
+ .use(Transloadit, {
|
|
|
+ waitForEncoding: true,
|
|
|
+ params: {
|
|
|
+ auth: { key: TRANSLOADIT_KEY },
|
|
|
+ template_id: TEMPLATE_ID,
|
|
|
+ },
|
|
|
+ })
|
|
|
|
|
|
formUppy.on('error', (err) => {
|
|
|
document.querySelector('#test-form .error')
|
|
@@ -45,81 +76,153 @@ formUppy.on('upload-error', (file, err) => {
|
|
|
.textContent = err.message
|
|
|
})
|
|
|
|
|
|
+formUppy.on('complete', ({ transloadit }) => {
|
|
|
+ const btn = document.getElementById('select-files')
|
|
|
+ const form = document.getElementById('test-form')
|
|
|
+ btn.hidden = true
|
|
|
+ const selectedFiles = document.createElement('uppy-form-selected-files')
|
|
|
+ selectedFiles.textContent = `selected files: ${Object.keys(transloadit[0].results).length}`
|
|
|
+ form.appendChild(selectedFiles)
|
|
|
+})
|
|
|
+
|
|
|
window.formUppy = formUppy
|
|
|
|
|
|
-const formUppyWithDashboard = robodog.form('#dashboard-form', {
|
|
|
+
|
|
|
+ * Form with Dashboard
|
|
|
+ */
|
|
|
+
|
|
|
+const formUppyWithDashboard = new Uppy({
|
|
|
debug: true,
|
|
|
- fields: ['message'],
|
|
|
+ autoProceed: false,
|
|
|
restrictions: {
|
|
|
allowedFileTypes: ['.png'],
|
|
|
},
|
|
|
- waitForEncoding: true,
|
|
|
- note: 'Only PNG files please!',
|
|
|
- params: {
|
|
|
- auth: { key: TRANSLOADIT_KEY },
|
|
|
- template_id: TEMPLATE_ID,
|
|
|
- },
|
|
|
- dashboard: '#dashboard-form .dashboard',
|
|
|
})
|
|
|
+ .use(Dashboard, {
|
|
|
+ inline: true,
|
|
|
+ target: '#dashboard-form .dashboard',
|
|
|
+ note: 'Only PNG files please!',
|
|
|
+ hideUploadButton: true,
|
|
|
+ })
|
|
|
+ .use(RemoteSources, { companionUrl: COMPANION_URL })
|
|
|
+ .use(Form, {
|
|
|
+ target: '#dashboard-form',
|
|
|
+ fields: ['message'],
|
|
|
+ triggerUploadOnSubmit: true,
|
|
|
+ submitOnSuccess: true,
|
|
|
+ addResultToForm: true,
|
|
|
+ })
|
|
|
+ .use(Transloadit, {
|
|
|
+ waitForEncoding: true,
|
|
|
+ params: {
|
|
|
+ auth: { key: TRANSLOADIT_KEY },
|
|
|
+ template_id: TEMPLATE_ID,
|
|
|
+ },
|
|
|
+ })
|
|
|
|
|
|
window.formUppyWithDashboard = formUppyWithDashboard
|
|
|
|
|
|
-const dashboard = robodog.dashboard('#dashboard', {
|
|
|
+
|
|
|
+ * Dashboard
|
|
|
+ */
|
|
|
+
|
|
|
+const dashboard = new Uppy({
|
|
|
debug: true,
|
|
|
- waitForEncoding: true,
|
|
|
- note: 'Images will be resized with Transloadit',
|
|
|
- params: {
|
|
|
- auth: { key: TRANSLOADIT_KEY },
|
|
|
- template_id: TEMPLATE_ID,
|
|
|
+ autoProceed: false,
|
|
|
+ restrictions: {
|
|
|
+ allowedFileTypes: ['.png'],
|
|
|
},
|
|
|
})
|
|
|
+ .use(Dashboard, {
|
|
|
+ inline: true,
|
|
|
+ target: '#dashboard',
|
|
|
+ note: 'Only PNG files please!',
|
|
|
+ })
|
|
|
+ .use(RemoteSources, { companionUrl: COMPANION_URL })
|
|
|
+ .use(Webcam, { target: Dashboard })
|
|
|
+ .use(ImageEditor, { target: Dashboard })
|
|
|
+ .use(Transloadit, {
|
|
|
+ waitForEncoding: true,
|
|
|
+ params: {
|
|
|
+ auth: { key: TRANSLOADIT_KEY },
|
|
|
+ template_id: TEMPLATE_ID,
|
|
|
+ },
|
|
|
+ })
|
|
|
|
|
|
window.dashboard = dashboard
|
|
|
|
|
|
-
|
|
|
- * robodog.modal
|
|
|
- */
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
-function openModal () {
|
|
|
- robodog.pick({
|
|
|
- restrictions: {
|
|
|
- allowedFileTypes: ['.png'],
|
|
|
- },
|
|
|
+const dashboardModal = new Uppy({
|
|
|
+ debug: true,
|
|
|
+ autoProceed: false,
|
|
|
+})
|
|
|
+ .use(Dashboard, { closeAfterFinish: true })
|
|
|
+ .use(RemoteSources, { companionUrl: COMPANION_URL })
|
|
|
+ .use(Webcam, { target: Dashboard })
|
|
|
+ .use(ImageEditor, { target: Dashboard })
|
|
|
+ .use(Transloadit, {
|
|
|
waitForEncoding: true,
|
|
|
params: {
|
|
|
auth: { key: TRANSLOADIT_KEY },
|
|
|
template_id: TEMPLATE_ID,
|
|
|
},
|
|
|
- providers: [
|
|
|
- 'webcam',
|
|
|
- ],
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- }).then(console.log, console.error)
|
|
|
+ })
|
|
|
+
|
|
|
+dashboardModal.on('complete', ({ transloadit, successful, failed }) => {
|
|
|
+ if (failed?.length !== 0) {
|
|
|
+ console.error('it failed', failed)
|
|
|
+ } else {
|
|
|
+ console.log('success', { transloadit, successful })
|
|
|
+ }
|
|
|
+})
|
|
|
+
|
|
|
+function openModal () {
|
|
|
+ dashboardModal.getPlugin('Dashboard').openModal()
|
|
|
}
|
|
|
|
|
|
window.openModal = openModal
|
|
|
|
|
|
-
|
|
|
- * robodog.upload
|
|
|
- */
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
-window.doUpload = (event) => {
|
|
|
- const resultEl = document.querySelector('#upload-result')
|
|
|
- const errorEl = document.querySelector('#upload-error')
|
|
|
- robodog.upload(event.target.files, {
|
|
|
+const uppyWithoutUI = new Uppy({
|
|
|
+ debug: true,
|
|
|
+ restrictions: {
|
|
|
+ allowedFileTypes: ['.png'],
|
|
|
+ },
|
|
|
+})
|
|
|
+ .use(Transloadit, {
|
|
|
waitForEncoding: true,
|
|
|
params: {
|
|
|
auth: { key: TRANSLOADIT_KEY },
|
|
|
template_id: TEMPLATE_ID,
|
|
|
},
|
|
|
- }).then((result) => {
|
|
|
+ })
|
|
|
+ .use(ProgressBar, { target: '#upload-result' })
|
|
|
+
|
|
|
+window.doUpload = (event) => {
|
|
|
+ const resultEl = document.querySelector('#upload-result')
|
|
|
+ const errorEl = document.querySelector('#upload-error')
|
|
|
+
|
|
|
+ uppyWithoutUI.addFiles(event.target.files)
|
|
|
+ uppyWithoutUI.upload()
|
|
|
+
|
|
|
+ uppyWithoutUI.on('complete', ({ transloadit }) => {
|
|
|
+ const resizedUrl = transloadit[0].results['resize'][0]['ssl_url']
|
|
|
+ const img = document.createElement('img')
|
|
|
+ img.src = resizedUrl
|
|
|
+ document.getElementById('upload-result').appendChild(img)
|
|
|
+
|
|
|
resultEl.classList.remove('hidden')
|
|
|
errorEl.classList.add('hidden')
|
|
|
- resultEl.textContent = inspect(result.results)
|
|
|
- }, (err) => {
|
|
|
+ resultEl.textContent = JSON.stringify(transloadit[0].results, null, 2)
|
|
|
+ })
|
|
|
+
|
|
|
+ uppyWithoutUI.on('error', (err) => {
|
|
|
resultEl.classList.add('hidden')
|
|
|
errorEl.classList.remove('hidden')
|
|
|
errorEl.textContent = err.message
|