]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
bitbake: toasterui: fix time estimation in project page
authorAlexandru Damian <alexandru.damian@intel.com>
Tue, 17 Feb 2015 15:02:26 +0000 (15:02 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 20 Feb 2015 12:58:19 +0000 (12:58 +0000)
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>
bitbake/lib/toaster/orm/models.py
bitbake/lib/toaster/toastergui/static/js/projectapp.js
bitbake/lib/toaster/toastergui/templates/managed_mrb_section.html
bitbake/lib/toaster/toastergui/templates/project.html

index f70c0066ad78c6a24446e0e105874f6c25c1daa1..0f85c8fd0a1c81e84aadd7eeacaea5ac7d9f8b29 100644 (file)
@@ -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
 
 
index bee3c56be2ff533fccc0e9338c4f651d8eb553b8..4d00f40ff1435015d237baffb07136156c74c748 100644 (file)
@@ -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) {
index 6f31ee02395865976a6830f759b7387e18abd9bb..b8d087ab6c1a8e4648e9d63ff4f5c34dbcb68a9e 100644 (file)
@@ -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
index 7da2361460161cf0206bcb3536e86c861523c0f6..a1cce33222735e7bf795f6ef08f6d40db3f40fe0 100644 (file)
@@ -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>