]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
baculum: Tweak running job progress bar improvements
authorMarcin Haba <marcin.haba@bacula.pl>
Sun, 18 Aug 2019 08:51:17 +0000 (10:51 +0200)
committerMarcin Haba <marcin.haba@bacula.pl>
Sat, 14 Dec 2019 14:55:59 +0000 (15:55 +0100)
gui/baculum/protected/Web/JavaScript/misc.js
gui/baculum/protected/Web/Pages/ClientView.page
gui/baculum/protected/Web/Pages/JobHistoryView.page

index 8668281147c6222b357145c6b9f747792a6fde3b..0128f5379dd5d176926ad92a69957fea80d129c8 100644 (file)
@@ -869,16 +869,31 @@ function estimate_job(jobs, job, level) {
                        counter++;
                }
        }
-       var bytes_slope = ((counter * bytes_xy) - (time * bytes)) / (counter * x2 - Math.pow(time, 2));
-       var files_slope = ((counter * files_xy) - (time * files)) / (counter * x2 - Math.pow(time, 2));
-       var bytes_intercept = (bytes / counter) - (bytes_slope * (time / counter));
-       var files_intercept = (files / counter) - (files_slope * (time / counter));
-       var est_bytes = bytes_intercept + (bytes_slope * parseInt((new Date).getTime() / 1000, 10));
-       var est_files = files_intercept + (files_slope * parseInt((new Date).getTime() / 1000, 10));
-       return {
-               est_bytes: est_bytes,
-               est_files: est_files
-       };
+       var est;
+       if (counter < 2) {
+               est = {
+                       est_bytes: bytes,
+                       est_files: files
+               };
+       } else if (counter === 2) {
+               est = {
+                       est_bytes: (bytes / 2),
+                       est_files: (files / 2)
+               }
+       } else {
+               var divisor = (counter * x2 - Math.pow(time, 2));
+               var bytes_slope = ((counter * bytes_xy) - (time * bytes)) / divisor;
+               var files_slope = ((counter * files_xy) - (time * files)) / divisor;
+               var bytes_intercept = (bytes / counter) - (bytes_slope * (time / counter));
+               var files_intercept = (files / counter) - (files_slope * (time / counter));
+               var est_bytes = bytes_intercept + (bytes_slope * parseInt((new Date).getTime() / 1000, 10));
+               var est_files = files_intercept + (files_slope * parseInt((new Date).getTime() / 1000, 10));
+               est = {
+                       est_bytes: est_bytes,
+                       est_files: est_files
+               };
+       }
+       return est;
 };
 
 function get_url_param (name) {
index e90297273495a37efa3ab747cfdfa7cad44ccb67..bd681622a4d4bf791e30ce37dd52047f4eadb8d3 100644 (file)
@@ -324,7 +324,11 @@ var oGraphicalClientStatus = {
                        bytes_progress.title = '<%[ Progress bar displays estimated values ]%>';
                        var bytes_label = document.createElement('DIV');
                        bytes_label.className = 'progressbar-label';
-                       bytes_label.textContent =  Units.get_formatted_size(bytes) + ' / <%[ est. ]%> ' +  Units.get_formatted_size(est.est_bytes) + ' (' + ((100 * bytes) / est.est_bytes).toFixed(1) + '%' + ')';
+                       var bytes_perc = ((100 * bytes) / est.est_bytes);
+                       if (bytes_perc > 100) {
+                               bytes_perc = 100;
+                       }
+                       bytes_label.textContent =  Units.get_formatted_size(bytes) + ' / <%[ est. ]%> ' +  Units.get_formatted_size(est.est_bytes) + ' (' + bytes_perc.toFixed(1) + '%' + ')';
                        bytes_progress.style.width = '70%';
                        bytes_progress.appendChild(bytes_label);
                        var bytes_bar = $(bytes_progress);
@@ -346,7 +350,11 @@ var oGraphicalClientStatus = {
                        files_progress.title = '<%[ Progress bar displays estimated values ]%>';
                        var files_label = document.createElement('DIV');
                        files_label.className = 'progressbar-label';
-                       files_label.textContent =  files + ' / <%[ est. ]%> ' +  parseInt(est.est_files, 10) + ' (' + ((100 * files) / est.est_files).toFixed(1) + '%' + ')';
+                       var files_perc = ((100 * files) / est.est_files);
+                       if (files_perc > 100) {
+                               files_perc = 100;
+                       }
+                       files_label.textContent =  files + ' / <%[ est. ]%> ' +  parseInt(est.est_files, 10) + ' (' + files_perc.toFixed(1) + '%' + ')';
                        files_progress.style.width = '70%';
                        files_progress.appendChild(files_label);
                        var files_bar = $(files_progress);
index e19037f0423a1abdddf3633118f2098eb86e1ec4..61bb4d697c9ffc907ef1fd1a5098a8dda6ae0ac9 100644 (file)
@@ -255,7 +255,11 @@ var oRunningJobStatus = {
                        bytes_progress.title = '<%[ Progress bar displays estimated values ]%>';
                        var bytes_label = document.createElement('DIV');
                        bytes_label.className = 'progressbar-label';
-                       bytes_label.textContent =  Units.get_formatted_size(bytes) + ' / <%[ est. ]%> ' +  Units.get_formatted_size(est.est_bytes) + ' (' + ((100 * bytes) / est.est_bytes).toFixed(1) + '%' + ')';
+                       var bytes_perc = ((100 * bytes) / est.est_bytes);
+                       if (bytes_perc > 100) {
+                               bytes_perc = 100;
+                       }
+                       bytes_label.textContent =  Units.get_formatted_size(bytes) + ' / <%[ est. ]%> ' +  Units.get_formatted_size(est.est_bytes) + ' (' + bytes_perc.toFixed(1) + '%' + ')';
                        bytes_progress.style.width = '70%';
                        bytes_progress.appendChild(bytes_label);
                        var bytes_bar = $(bytes_progress);
@@ -277,7 +281,11 @@ var oRunningJobStatus = {
                        files_progress.title = '<%[ Progress bar displays estimated values ]%>';
                        var files_label = document.createElement('DIV');
                        files_label.className = 'progressbar-label';
-                       files_label.textContent =  files + ' / <%[ est. ]%> ' +  parseInt(est.est_files, 10) + ' (' + ((100 * files) / est.est_files).toFixed(1) + '%' + ')';
+                       var files_perc = ((100 * files) / est.est_files);
+                       if (files_perc > 100) {
+                               files_perc = 100;
+                       }
+                       files_label.textContent =  files + ' / <%[ est. ]%> ' +  parseInt(est.est_files, 10) + ' (' + files_perc.toFixed(1) + '%' + ')';
                        files_progress.style.width = '70%';
                        files_progress.appendChild(files_label);
                        var files_bar = $(files_progress);