|
@@ -171,14 +171,15 @@ module.exports = class Transloadit extends Plugin {
|
|
|
this.socket.on('result', this.onResult.bind(this))
|
|
|
}
|
|
|
|
|
|
- this.assemblyReady = new Promise((resolve, reject) => {
|
|
|
- if (this.opts.waitForEncoding) {
|
|
|
- this.socket.on('finished', resolve)
|
|
|
- } else if (this.opts.waitForMetadata) {
|
|
|
- this.socket.on('metadata', resolve)
|
|
|
- }
|
|
|
- this.socket.on('error', reject)
|
|
|
- })
|
|
|
+ if (this.opts.waitForEncoding) {
|
|
|
+ this.socket.on('finished', () => {
|
|
|
+ this.core.emit('transloadit:complete', assembly)
|
|
|
+ })
|
|
|
+ } else if (this.opts.waitForMetadata) {
|
|
|
+ this.socket.on('metadata', () => {
|
|
|
+ this.core.emit('transloadit:complete', assembly)
|
|
|
+ })
|
|
|
+ }
|
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
this.socket.on('connect', resolve)
|
|
@@ -212,31 +213,40 @@ module.exports = class Transloadit extends Plugin {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+
|
|
|
const fileID = fileIDs[0]
|
|
|
const file = this.core.state.files[fileID]
|
|
|
- const assembly = this.state.assemblies[file.assembly]
|
|
|
|
|
|
this.core.emit('informer', this.opts.locale.strings.encoding, 'info', 0)
|
|
|
- return this.assemblyReady.then(() => {
|
|
|
- return this.client.getAssemblyStatus(assembly.assembly_ssl_url)
|
|
|
- }).then((assembly) => {
|
|
|
- this.updateState({
|
|
|
- assemblies: Object.assign({}, this.state.assemblies, {
|
|
|
- [assembly.assembly_id]: assembly
|
|
|
+ const onAssemblyFinished = (assembly) => {
|
|
|
+
|
|
|
+ if (assembly.assembly_id !== file.transloadit.assembly) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ this.core.emitter.off('transloadit:complete', onAssemblyFinished)
|
|
|
+
|
|
|
+ return this.client.getAssemblyStatus(assembly.assembly_ssl_url).then((assembly) => {
|
|
|
+ this.updateState({
|
|
|
+ assemblies: Object.assign({}, this.state.assemblies, {
|
|
|
+ [assembly.assembly_id]: assembly
|
|
|
+ })
|
|
|
})
|
|
|
- })
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- this.core.emit('informer:hide')
|
|
|
- }).catch((err) => {
|
|
|
-
|
|
|
- this.core.emit('informer:hide')
|
|
|
+ this.core.emit('informer:hide')
|
|
|
+ }).catch((err) => {
|
|
|
+
|
|
|
+ this.core.emit('informer:hide')
|
|
|
|
|
|
- throw err
|
|
|
- })
|
|
|
+ throw err
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ this.core.on('transloadit:complete', onAssemblyFinished)
|
|
|
}
|
|
|
|
|
|
install () {
|