diff --git a/misc/progress.js b/misc/progress.js index 66013d4e88e..e7c289e317e 100644 --- a/misc/progress.js +++ b/misc/progress.js @@ -42,7 +42,7 @@ progressBar.prototype.setProgress = function (percentage, status) { } } if (this.callback) { - this.callback(percentage, status); + this.callback(percentage, status, this); } } @@ -82,8 +82,8 @@ progressBar.prototype.receivePing = function (string, xmlhttp, pb) { } // Split into values var matches = string.length > 0 ? string.split('|') : []; + pb.timer = setTimeout(function() { pb.sendPing(); }, pb.delay); if (matches.length >= 2) { pb.setProgress(matches[0], matches[1]); } - pb.timer = setTimeout(function() { pb.sendPing(); }, pb.delay); } diff --git a/misc/update.js b/misc/update.js index e4358d26917..117713b69aa 100644 --- a/misc/update.js +++ b/misc/update.js @@ -5,16 +5,17 @@ if (isJsEnabled()) { } if ($('progress')) { - updateCallback = function (progress, status) { + updateCallback = function (progress, status, pb) { if (progress == 100) { + pb.stopMonitoring(); window.location = window.location.href.split('op=')[0] +'op=finished'; } } - this.progress = new progressBar('updateprogress', updateCallback, HTTPPost); - this.progress.setProgress(-1, 'Starting updates...'); - $('progress').appendChild(this.progress.element); - this.progress.startMonitoring('update.php?op=do_update', 0); + var progress = new progressBar('updateprogress', updateCallback, HTTPPost); + progress.setProgress(-1, 'Starting updates...'); + $('progress').appendChild(progress.element); + progress.startMonitoring('update.php?op=do_update', 0); } }); }