diff --git a/src/core/Core.js b/src/core/Core.js index 795bc3fa7..53f653669 100644 --- a/src/core/Core.js +++ b/src/core/Core.js @@ -44,8 +44,9 @@ export default class { // Runs a waterfall of runType plugin packs, like so: // All preseters(data) --> All selecters(data) --> All uploaders(data) --> done run() { - console.dir({ - method: 'Core.run' + console.log({ + class : 'Core', + method : 'run' }); // First we select only plugins of current type, diff --git a/src/plugins/DragDrop.js b/src/plugins/DragDrop.js index 4a1200f50..d1c31ff5d 100644 --- a/src/plugins/DragDrop.js +++ b/src/plugins/DragDrop.js @@ -17,8 +17,6 @@ export default class DragDrop extends Plugin { this.opts = defaultOptions; Object.assign(this.opts, opts); - console.log(this.opts); - // get the element where Drag & Drop event will occur this.dropzone = document.querySelectorAll(this.opts.selector)[0]; this.dropzoneInput = document.querySelectorAll('.UppyDragDrop-input')[0]; @@ -125,14 +123,12 @@ export default class DragDrop extends Plugin { } run(results) { - console.log('DragDrop running!'); - // console.log(results); + console.log({ + class : 'DragDrop', + method : 'run', + results: results + }); + return this.listenForEvents(); - // this.core.setProgress(this, 0); - // var selected = [ {name: 'lolcat.jpeg'} ]; - // this.core.setProgress(this, 100); - // return selected; - // done(null, 'done with DragDrop'); - // return Promise.resolve(files); } } diff --git a/src/plugins/Dropbox.js b/src/plugins/Dropbox.js index 7ea391dd2..866ee3a02 100644 --- a/src/plugins/Dropbox.js +++ b/src/plugins/Dropbox.js @@ -82,7 +82,7 @@ export default class Dropbox extends Plugin { if (type === 'file') { element.addEventListener('click', () => { this.files.push(element.getAttribute('data-name')); - console.dir(`files: ${this.files}`); + console.log(`files: ${this.files}`); }); } else { element.addEventListener('dblclick', () => { diff --git a/src/plugins/Formtag.js b/src/plugins/Formtag.js index 669053555..2bba87d83 100644 --- a/src/plugins/Formtag.js +++ b/src/plugins/Formtag.js @@ -7,8 +7,11 @@ export default class Formtag extends Plugin { } run(results) { - console.log(results); - console.log(this.opts); + console.log({ + class : 'Formtag', + method : 'run', + results: results + }); this.core.setProgress(this, 0); diff --git a/src/plugins/Plugin.js b/src/plugins/Plugin.js index 5b05326dd..41f40d57a 100644 --- a/src/plugins/Plugin.js +++ b/src/plugins/Plugin.js @@ -10,6 +10,12 @@ export default class Plugin { } extractFiles(results) { + console.log({ + class : 'Plugin', + method : 'extractFiles', + results: results + }); + const files = []; for (let i in results) { for (let j in results[i].files) { @@ -17,12 +23,6 @@ export default class Plugin { } } - console.log({ - method : 'extractFiles', - results: results, - files : files - }); - return files; } diff --git a/src/plugins/Tus10.js b/src/plugins/Tus10.js index 0552d64d4..a11d1c303 100644 --- a/src/plugins/Tus10.js +++ b/src/plugins/Tus10.js @@ -1,5 +1,5 @@ import Plugin from './Plugin'; -import Tus from 'tus-js-client'; +import tus from 'tus-js-client'; export default class Tus10 extends Plugin { constructor(core, opts) { @@ -8,23 +8,51 @@ export default class Tus10 extends Plugin { } run(results) { - console.log({tusRunReceived: results}); + console.log({ + class : 'Tus10', + method : 'run', + results: results + }); const files = this.extractFiles(results); this.core.setProgress(this, 0); - var uploaded = []; + var uploaded = []; + var uploaders = []; for (var i in files) { var file = files[i]; - this.core.setProgress(this, (i * 1) + 1); - - console.log(file); - uploaded[i] = file; - uploaded[i].url = this.opts.endpoint + '/uploaded/' + file.name; + uploaders.push(this.upload(file, i, files.length)); } - this.core.setProgress(this, 100); - console.log('done with Tus'); - return Promise.resolve(uploaded); + return Promise.all(uploaders); + } + + upload(file, current, total) { + + // Create a new tus upload + var upload = new tus.Upload(file, { + endpoint: this.opts.endpoint, + onError: function (error) { + return Promise.reject('Failed because: ' + error); + }, + onProgress: function (bytesUploaded, bytesTotal) { + var percentage = (bytesUploaded / bytesTotal * 100).toFixed(2); + var percentageOfTotal = (percentage / total); + var progressedAlready = percentageOfTotal; + if (current > 0) { + progressedAlready = progressedAlready + (100/total*current); + } else { + progressedAlready = (current * percentage); + } + + this.core.setProgress(this, progressedAlready); + }, + onSuccess: function () { + console.log('Download %s from %s', upload.file.name, upload.url); + return Promise.resolve(upload); + } + }); + // Start the upload + upload.start(); } } diff --git a/website/_config.yml b/website/_config.yml index 437228a71..4e132f0db 100644 --- a/website/_config.yml +++ b/website/_config.yml @@ -5,9 +5,9 @@ # Uppy versions, auto updated by update.js uppy_version: 0.0.1 -uppy_dev_size: "77.69" -uppy_min_size: "77.69" -uppy_gz_size: "77.69" +uppy_dev_size: "78.46" +uppy_min_size: "78.46" +uppy_gz_size: "78.46" # Theme google_analytics: UA-63083-12