bitbake: toasterui: fix time estimation in project page
This patch fixes the time estimation to build completion in project page. Additionally it fixes the Most Recent Builds section used in various pages in managed mode, and proper time to build estimation in all pages. [YOCTO #7004] (Bitbake rev: 5fecfda0e47c2ecba9b7c903c6d258eefa431aa0) Signed-off-by: Alexandru Damian <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
6dbd214fdf
commit
9c358bd1d7
|
@ -194,7 +194,7 @@ class Build(models.Model):
|
|||
eta = timezone.now()
|
||||
completeper = self.completeper()
|
||||
if self.completeper() > 0:
|
||||
eta = timezone.now() + ((timezone.now() - self.started_on)*(100-completeper)/completeper)
|
||||
eta += ((eta - self.started_on)*100)/completeper
|
||||
return eta
|
||||
|
||||
|
||||
|
|
|
@ -136,6 +136,16 @@ projectApp.filter('timediff', function() {
|
|||
}
|
||||
});
|
||||
|
||||
// add "time to future" eta that computes time from now to a point in the future
|
||||
projectApp.filter('toeta', function() {
|
||||
return function(input) {
|
||||
var crtmiliseconds = new Date().getTime();
|
||||
diff = (parseInt(input) - crtmiliseconds ) / 1000;
|
||||
console.log("Debug: future time ", input, "crt time", crtmiliseconds, ":", diff);
|
||||
return diff < 0 ? 300 : diff;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* main controller for the project page
|
||||
*/
|
||||
|
@ -259,7 +269,14 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc
|
|||
var i = 0;
|
||||
for (i = 0 ; i < $scope.builds.length; i ++) {
|
||||
if ($scope.builds[i].id > elem.id) continue;
|
||||
if ($scope.builds[i].id == elem.id) { found=true; break;}
|
||||
if ($scope.builds[i].id == elem.id) {
|
||||
found=true;
|
||||
// do deep data copy
|
||||
for (var attr in elem) {
|
||||
$scope.builds[i][attr] = elem[attr];
|
||||
}
|
||||
break;
|
||||
}
|
||||
if ($scope.builds[i].id < elem.id) break;
|
||||
}
|
||||
if (!found) {
|
||||
|
@ -272,8 +289,8 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc
|
|||
var found = false;
|
||||
var i = 0;
|
||||
for (i = 0; i < $scope.builds.length; i ++) {
|
||||
if ($scope.builds[i].id > elem.id) continue;
|
||||
if ($scope.builds[i].id == elem.id) { found=true; break;}
|
||||
if ($scope.builds[i].id > elem.id) continue;
|
||||
if ($scope.builds[i].id == elem.id) { found=true; break; }
|
||||
if ($scope.builds[i].id < elem.id) break;
|
||||
}
|
||||
if (!found) {
|
||||
|
@ -281,6 +298,7 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc
|
|||
}
|
||||
});
|
||||
|
||||
|
||||
$scope.fetchLayersForTargets();
|
||||
}
|
||||
if (_data.targets !== undefined) {
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
{% load projecttags %}
|
||||
{% load humanize %}
|
||||
|
||||
|
||||
{%if len.mru > 0%}
|
||||
{%if mru|length > 0%}
|
||||
<div class="page-header top-air">
|
||||
<h1>
|
||||
Latest builds
|
||||
|
|
|
@ -196,7 +196,7 @@ vim: expandtab tabstop=2
|
|||
<div style="width: {[b.build[0].completeper]}%;" class="bar"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-right lead">ETA: {[b.build[0].eta|date:"HH:mm:ss"]}</div>
|
||||
<div class="text-right lead">ETA in {[b.build[0].eta|toeta|timediff]}</div>
|
||||
</case>
|
||||
</case>
|
||||
|
||||
|
|
Loading…
Reference in New Issue