mirror of
https://github.com/transloadit/uppy.git
synced 2026-07-25 11:14:05 +00:00
Actually use tus :D
This commit is contained in:
parent
e578feba47
commit
bb28fa487e
7 changed files with 63 additions and 35 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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', () => {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue