diff options
-rw-r--r-- | lib/toaster/toastergui/static/js/projectapp.js | 19 | ||||
-rw-r--r-- | lib/toaster/toastergui/templates/project.html | 7 | ||||
-rwxr-xr-x | lib/toaster/toastergui/views.py | 6 |
3 files changed, 26 insertions, 6 deletions
diff --git a/lib/toaster/toastergui/static/js/projectapp.js b/lib/toaster/toastergui/static/js/projectapp.js index 26e054dc2..0b6e0126d 100644 --- a/lib/toaster/toastergui/static/js/projectapp.js +++ b/lib/toaster/toastergui/static/js/projectapp.js @@ -484,11 +484,13 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc layerAdd: selectedArray.join(","), } }).then(function () { + $scope.adjustMostBuiltItems(selectedArray.length); $scope.layerAddName = undefined; }); }); } else { + $scope.adjustMostBuiltItems(1); $scope._makeXHRCall({ method: "POST", url: $scope.urls.xhr_edit, data: { @@ -503,6 +505,7 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc }; $scope.layerDel = function(id) { + $scope.adjustMostBuiltItems(-1); $scope._makeXHRCall({ method: "POST", url: $scope.urls.xhr_edit, data: { @@ -511,6 +514,14 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc }); }; + $scope.adjustMostBuiltItems = function(listDelta) { + $scope.layerCount += listDelta; + $scope.mutedtargets = ($scope.layerCount == 0 ? "muted" : ""); + }; + +/* +*/ + /** * Verifies if a project settings change would trigger layer updates. If user confirmation is needed, @@ -799,6 +810,14 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc return keys.length === 0; }; + $scope.disableBuildCheckbox = function(t) { + if ( $scope.layerCount == 0 ) { + $scope.mostBuiltTargets[t] = 0; + return true; + }; + return false; + } + $scope.buildSelectedTargets = function () { var keys = Object.keys($scope.mostBuiltTargets); keys = keys.filter(function (e) { if ($scope.mostBuiltTargets[e]) return e; }); diff --git a/lib/toaster/toastergui/templates/project.html b/lib/toaster/toastergui/templates/project.html index 40048c2f2..9d51a5720 100644 --- a/lib/toaster/toastergui/templates/project.html +++ b/lib/toaster/toastergui/templates/project.html @@ -328,10 +328,10 @@ vim: expandtab tabstop=2 <h4 class="air"> Most built targets </h4> - <ul class="unstyled configuration-list"> + <ul class="unstyled configuration-list {[mutedtargets]}"> <li ng-repeat="t in frequenttargets"> <label class="checkbox"> - <input type="checkbox" ng-model="mostBuiltTargets[t]">{[t]} + <input type="checkbox" ng-model="mostBuiltTargets[t]" ng-disabled="disableBuildCheckbox(t)" ng-checked="mostBuiltTargets[t] && !disableBuildCheckbox(t)">{[t]} </label> </li> </ul> @@ -443,7 +443,8 @@ angular.element(document).ready(function() { scope.frequenttargets = {{freqtargets|json}}; scope.machine = {{machine|json}}; scope.releases = {{releases|json}}; - + scope.layerCount = scope.layers.length; + scope.mutedtargets = (scope.layerCount == 0 ? "muted" : "") var now = (new Date()).getTime(); scope.todaydate = now - (now % 86400000); diff --git a/lib/toaster/toastergui/views.py b/lib/toaster/toastergui/views.py index d99995944..fdd80222a 100755 --- a/lib/toaster/toastergui/views.py +++ b/lib/toaster/toastergui/views.py @@ -2204,11 +2204,11 @@ if toastermain.settings.MANAGED: freqtargets = [] try: freqtargets += map(lambda x: x.target, reduce(lambda x, y: x + y, map(lambda x: list(x.target_set.all()), Build.objects.filter(project = prj, outcome__lt = Build.IN_PROGRESS)))) - freqtargets += map(lambda x: x.target, reduce(lambda x, y: x + y, map(lambda x: list(x.brtarget_set.all()), BuildRequest.objects.filter(project = prj, state__lte = BuildRequest.REQ_QUEUED)))) + freqtargets += map(lambda x: x.target, reduce(lambda x, y: x + y, map(lambda x: list(x.brtarget_set.all()), BuildRequest.objects.filter(project = prj, state = BuildRequest.REQ_FAILED)))) except TypeError: pass freqtargets = Counter(freqtargets) - freqtargets = sorted(freqtargets, key = lambda x: freqtargets[x]) + freqtargets = sorted(freqtargets, key = lambda x: freqtargets[x], reverse=True) context = { "project" : prj, @@ -2228,7 +2228,7 @@ if toastermain.settings.MANAGED: "branch" : { "name" : x.layercommit.get_vcs_reference(), "layersource" : x.layercommit.up_branch.layer_source.name if x.layercommit.up_branch != None else None}}, prj.projectlayer_set.all().order_by("id")), "targets" : map(lambda x: {"target" : x.target, "task" : x.task, "pk": x.pk}, prj.projecttarget_set.all()), - "freqtargets": freqtargets, + "freqtargets": freqtargets[:5], "releases": map(lambda x: {"id": x.pk, "name": x.name, "description":x.description}, Release.objects.all()), "project_html": 1, } |