Merge pull request #11399 from nextcloud/stable14-11112-do-not-hide-the-progress-bar-while-the-chunked-upload-is-being-assembled
[stable14] Do not hide the progress bar while the chunked upload is being assembled
This commit is contained in:
commit
5d84475e11
|
@ -401,6 +401,13 @@ OC.Uploader.prototype = _.extend({
|
||||||
*/
|
*/
|
||||||
_uploads: {},
|
_uploads: {},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Count of upload done promises that have not finished yet.
|
||||||
|
*
|
||||||
|
* @type int
|
||||||
|
*/
|
||||||
|
_pendingUploadDoneCount: 0,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List of directories known to exist.
|
* List of directories known to exist.
|
||||||
*
|
*
|
||||||
|
@ -745,6 +752,27 @@ OC.Uploader.prototype = _.extend({
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_updateProgressBarOnUploadStop: function() {
|
||||||
|
if (this._pendingUploadDoneCount === 0) {
|
||||||
|
// All the uploads ended and there is no pending operation, so hide
|
||||||
|
// the progress bar.
|
||||||
|
// Note that this happens here only with non-chunked uploads; if the
|
||||||
|
// upload was chunked then this will have been executed after all
|
||||||
|
// the uploads ended but before the upload done handler that reduces
|
||||||
|
// the pending operation count was executed.
|
||||||
|
this._hideProgressBar();
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#uploadprogressbar .label .mobile').text(t('core', '…'));
|
||||||
|
$('#uploadprogressbar .label .desktop').text(t('core', 'Processing files …'));
|
||||||
|
|
||||||
|
// Nothing is being uploaded at this point, and the pending operations
|
||||||
|
// can not be cancelled, so the cancel button should be hidden.
|
||||||
|
$('#uploadprogresswrapper .stop').fadeOut();
|
||||||
|
},
|
||||||
|
|
||||||
_showProgressBar: function() {
|
_showProgressBar: function() {
|
||||||
$('#uploadprogressbar').fadeIn();
|
$('#uploadprogressbar').fadeIn();
|
||||||
this.$uploadEl.trigger(new $.Event('resized'));
|
this.$uploadEl.trigger(new $.Event('resized'));
|
||||||
|
@ -1126,7 +1154,7 @@ OC.Uploader.prototype = _.extend({
|
||||||
self.log('progress handle fileuploadstop', e, data);
|
self.log('progress handle fileuploadstop', e, data);
|
||||||
|
|
||||||
self.clear();
|
self.clear();
|
||||||
self._hideProgressBar();
|
self._updateProgressBarOnUploadStop();
|
||||||
self.trigger('stop', e, data);
|
self.trigger('stop', e, data);
|
||||||
});
|
});
|
||||||
fileupload.on('fileuploadfail', function(e, data) {
|
fileupload.on('fileuploadfail', function(e, data) {
|
||||||
|
@ -1194,7 +1222,26 @@ OC.Uploader.prototype = _.extend({
|
||||||
});
|
});
|
||||||
fileupload.on('fileuploaddone', function(e, data) {
|
fileupload.on('fileuploaddone', function(e, data) {
|
||||||
var upload = self.getUpload(data);
|
var upload = self.getUpload(data);
|
||||||
|
|
||||||
|
self._pendingUploadDoneCount++;
|
||||||
|
|
||||||
upload.done().then(function() {
|
upload.done().then(function() {
|
||||||
|
self._pendingUploadDoneCount--;
|
||||||
|
if (Object.keys(self._uploads).length === 0 && self._pendingUploadDoneCount === 0) {
|
||||||
|
// All the uploads ended and there is no pending
|
||||||
|
// operation, so hide the progress bar.
|
||||||
|
// Note that this happens here only with chunked
|
||||||
|
// uploads; if the upload was non-chunked then this
|
||||||
|
// handler is immediately executed, before the
|
||||||
|
// jQuery upload done handler that removes the
|
||||||
|
// upload from the list, and thus at this point
|
||||||
|
// there is still at least one upload that has not
|
||||||
|
// ended (although the upload stop handler is always
|
||||||
|
// executed after all the uploads have ended, which
|
||||||
|
// hides the progress bar in that case).
|
||||||
|
self._hideProgressBar();
|
||||||
|
}
|
||||||
|
|
||||||
self.trigger('done', e, upload);
|
self.trigger('done', e, upload);
|
||||||
}).fail(function(status, response) {
|
}).fail(function(status, response) {
|
||||||
var message = response.message;
|
var message = response.message;
|
||||||
|
|
Loading…
Reference in New Issue