I have found that when listening to a file's changeProgress event, the file's state never becomes the final state of uploaded'. So something like the following will never execute the the code when the state is uploaded.
let uploader = new com.zenesis.qx.upload.UploadMgr(this.upload, uploadUrl);
uploader.addListener('addFile', function(evt) {
let file = evt.getData();
let progressListenerId = file.addListener('changeProgress', function(evt) {
let file = evt.getTarget();
let uploadedSize = evt.getData();
if(file.getState() === 'uploading')
{
console.log('uploading...');
}
else if(file.getState() === 'uploaded')
{
// this is never executed...
console.log('finished uploading!');
}
}
});
I have made a fix by firing the changeProgress data event in File.js _applyState function:
// property apply
_applyState: function(value, oldValue) {
qx.core.Assert.assertTrue((!oldValue && value == "not-started")
|| (oldValue == "not-started" && (value == "cancelled" || value == "uploading"))
|| (oldValue == "uploading" && (value == "cancelled" || value == "uploaded")));
// fire the event!
this.fireDataEvent('changeProgress', value);
}
I have found that when listening to a file's
changeProgress
event, the file'sstate
never becomes the final state ofuploaded'
. So something like the following will never execute the the code when the state isuploaded
.I have made a fix by firing the
changeProgress
data event in File.js_applyState
function: