Merge pull request #5177 from Bekcpear/master
Fix upload remaining time
This commit is contained in:
commit
cc0ff6f5e3
|
@ -956,16 +956,7 @@ OC.Uploader.prototype = _.extend({
|
||||||
|
|
||||||
if (this._supportAjaxUploadWithProgress()) {
|
if (this._supportAjaxUploadWithProgress()) {
|
||||||
//remaining time
|
//remaining time
|
||||||
var lastUpdate = new Date().getMilliseconds();
|
var lastUpdate, lastSize, bufferSize, buffer, bufferIndex, bufferIndex2, bufferTotal;
|
||||||
var lastSize = 0;
|
|
||||||
var bufferSize = 20;
|
|
||||||
var buffer = [];
|
|
||||||
var bufferIndex = 0;
|
|
||||||
var bufferIndex2 = 0;
|
|
||||||
var bufferTotal = 0;
|
|
||||||
for(var i = 0; i < bufferSize;i++){
|
|
||||||
buffer[i] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// add progress handlers
|
// add progress handlers
|
||||||
fileupload.on('fileuploadadd', function(e, data) {
|
fileupload.on('fileuploadadd', function(e, data) {
|
||||||
|
@ -986,6 +977,17 @@ OC.Uploader.prototype = _.extend({
|
||||||
+ '</span></em>');
|
+ '</span></em>');
|
||||||
$('#uploadprogressbar').tooltip({placement: 'bottom'});
|
$('#uploadprogressbar').tooltip({placement: 'bottom'});
|
||||||
self._showProgressBar();
|
self._showProgressBar();
|
||||||
|
// initial remaining time variables
|
||||||
|
lastUpdate = new Date().getTime();
|
||||||
|
lastSize = 0;
|
||||||
|
bufferSize = 20;
|
||||||
|
buffer = [];
|
||||||
|
bufferIndex = 0;
|
||||||
|
bufferIndex2 = 0;
|
||||||
|
bufferTotal = 0;
|
||||||
|
for(var i = 0; i < bufferSize; i++){
|
||||||
|
buffer[i] = 0;
|
||||||
|
}
|
||||||
self.trigger('start', e, data);
|
self.trigger('start', e, data);
|
||||||
});
|
});
|
||||||
fileupload.on('fileuploadprogress', function(e, data) {
|
fileupload.on('fileuploadprogress', function(e, data) {
|
||||||
|
@ -996,12 +998,12 @@ OC.Uploader.prototype = _.extend({
|
||||||
fileupload.on('fileuploadprogressall', function(e, data) {
|
fileupload.on('fileuploadprogressall', function(e, data) {
|
||||||
self.log('progress handle fileuploadprogressall', e, data);
|
self.log('progress handle fileuploadprogressall', e, data);
|
||||||
var progress = (data.loaded / data.total) * 100;
|
var progress = (data.loaded / data.total) * 100;
|
||||||
var thisUpdate = new Date().getMilliseconds();
|
var thisUpdate = new Date().getTime();
|
||||||
var diffUpdate = (thisUpdate - lastUpdate)/1000; // eg. 2s
|
var diffUpdate = (thisUpdate - lastUpdate)/1000; // eg. 2s
|
||||||
lastUpdate = thisUpdate;
|
lastUpdate = thisUpdate;
|
||||||
var diffSize = data.loaded - lastSize;
|
var diffSize = data.loaded - lastSize;
|
||||||
lastSize = data.loaded;
|
lastSize = data.loaded;
|
||||||
diffSize = diffSize / diffUpdate; // apply timing factor, eg. 1mb/2s = 0.5mb/s
|
diffSize = diffSize / diffUpdate; // apply timing factor, eg. 1MiB/2s = 0.5MiB/s, unit is byte per second
|
||||||
var remainingSeconds = ((data.total - data.loaded) / diffSize);
|
var remainingSeconds = ((data.total - data.loaded) / diffSize);
|
||||||
if(remainingSeconds >= 0) {
|
if(remainingSeconds >= 0) {
|
||||||
bufferTotal = bufferTotal - (buffer[bufferIndex]) + remainingSeconds;
|
bufferTotal = bufferTotal - (buffer[bufferIndex]) + remainingSeconds;
|
||||||
|
@ -1025,7 +1027,7 @@ OC.Uploader.prototype = _.extend({
|
||||||
t('files', '{loadedSize} of {totalSize} ({bitrate})' , {
|
t('files', '{loadedSize} of {totalSize} ({bitrate})' , {
|
||||||
loadedSize: humanFileSize(data.loaded),
|
loadedSize: humanFileSize(data.loaded),
|
||||||
totalSize: humanFileSize(data.total),
|
totalSize: humanFileSize(data.total),
|
||||||
bitrate: humanFileSize(data.bitrate) + '/s'
|
bitrate: humanFileSize(data.bitrate / 8) + '/s'
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
$('#uploadprogressbar').progressbar('value', progress);
|
$('#uploadprogressbar').progressbar('value', progress);
|
||||||
|
|
Loading…
Reference in New Issue