summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/toaster/toastergui/static/js/projectapp.js19
-rw-r--r--lib/toaster/toastergui/templates/project.html7
-rwxr-xr-xlib/toaster/toastergui/views.py6
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,
}