aboutsummaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/toaster/orm/models.py2
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/projectapp.js24
-rw-r--r--bitbake/lib/toaster/toastergui/templates/managed_mrb_section.html3
-rw-r--r--bitbake/lib/toaster/toastergui/templates/project.html2
4 files changed, 24 insertions, 7 deletions
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py
index f70c0066ad..0f85c8fd0a 100644
--- a/bitbake/lib/toaster/orm/models.py
+++ b/bitbake/lib/toaster/orm/models.py
@@ -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
diff --git a/bitbake/lib/toaster/toastergui/static/js/projectapp.js b/bitbake/lib/toaster/toastergui/static/js/projectapp.js
index bee3c56be2..4d00f40ff1 100644
--- a/bitbake/lib/toaster/toastergui/static/js/projectapp.js
+++ b/bitbake/lib/toaster/toastergui/static/js/projectapp.js
@@ -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) {
diff --git a/bitbake/lib/toaster/toastergui/templates/managed_mrb_section.html b/bitbake/lib/toaster/toastergui/templates/managed_mrb_section.html
index 6f31ee0239..b8d087ab6c 100644
--- a/bitbake/lib/toaster/toastergui/templates/managed_mrb_section.html
+++ b/bitbake/lib/toaster/toastergui/templates/managed_mrb_section.html
@@ -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
diff --git a/bitbake/lib/toaster/toastergui/templates/project.html b/bitbake/lib/toaster/toastergui/templates/project.html
index 7da2361460..a1cce33222 100644
--- a/bitbake/lib/toaster/toastergui/templates/project.html
+++ b/bitbake/lib/toaster/toastergui/templates/project.html
@@ -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>