diff options
Diffstat (limited to 'app/javascript')
-rw-r--r-- | app/javascript/activestorage/direct_upload.js | 11 | ||||
-rw-r--r-- | app/javascript/activestorage/direct_upload_controller.js | 2 | ||||
-rw-r--r-- | app/javascript/activestorage/file_checksum.js | 5 |
3 files changed, 11 insertions, 7 deletions
diff --git a/app/javascript/activestorage/direct_upload.js b/app/javascript/activestorage/direct_upload.js index 7bbe4e0fdd..7085e0a4ab 100644 --- a/app/javascript/activestorage/direct_upload.js +++ b/app/javascript/activestorage/direct_upload.js @@ -5,16 +5,15 @@ import { BlobUpload } from "./blob_upload" let id = 0 export class DirectUpload { - constructor(file, options = {}) { - this.id = id++ + constructor(file, url, delegate) { + this.id = ++id this.file = file - this.url = options.url - this.delegate = options.delegate + this.url = url + this.delegate = delegate } create(callback) { - const fileChecksum = new FileChecksum(this.file) - fileChecksum.create((error, checksum) => { + FileChecksum.create(this.file, (error, checksum) => { const blob = new BlobRecord(this.file, checksum, this.url) notify(this.delegate, "directUploadWillCreateBlobWithXHR", blob.xhr) blob.create(error => { diff --git a/app/javascript/activestorage/direct_upload_controller.js b/app/javascript/activestorage/direct_upload_controller.js index a5541c81be..987050889a 100644 --- a/app/javascript/activestorage/direct_upload_controller.js +++ b/app/javascript/activestorage/direct_upload_controller.js @@ -5,7 +5,7 @@ export class DirectUploadController { constructor(input, file) { this.input = input this.file = file - this.directUpload = new DirectUpload(this.file, { url: this.url, delegate: this }) + this.directUpload = new DirectUpload(this.file, this.url, this) this.dispatch("initialize") } diff --git a/app/javascript/activestorage/file_checksum.js b/app/javascript/activestorage/file_checksum.js index d7a10b3e55..ffaec1a128 100644 --- a/app/javascript/activestorage/file_checksum.js +++ b/app/javascript/activestorage/file_checksum.js @@ -3,6 +3,11 @@ import SparkMD5 from "spark-md5" const fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice export class FileChecksum { + static create(file, callback) { + const instance = new FileChecksum(file) + instance.create(callback) + } + constructor(file) { this.file = file this.chunkSize = 2097152 // 2MB |