diff options
| author | Michael Wood <michael.g.wood@intel.com> | 2015-01-08 13:15:10 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-01-08 22:34:36 +0000 |
| commit | ed9fa17467ad8f41c654187eb840d4b4e15d262d (patch) | |
| tree | 21166f53d96811cc2c31f83c69a026eb2f97d53b | |
| parent | 2e26745a134373dfde3aa2b16fef3df720436e77 (diff) | |
| download | poky-ed9fa17467ad8f41c654187eb840d4b4e15d262d.tar.gz | |
bitbake: toaster: Improve client side error handling
Make use of the toastermain.settings.DEBUG flag to toggle the client
side error logging. Make the error logging consistent by using
console.warn/error across the project, this adds traceability to the
warnings. Also handles the case where console is not available by
stubbing it in libtoaster.
(Bitbake rev: c34ebc51a6cbf90c64ef1ac461e475c6341f0f2a)
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
7 files changed, 69 insertions, 33 deletions
diff --git a/bitbake/lib/toaster/toastergui/static/js/libtoaster.js b/bitbake/lib/toaster/toastergui/static/js/libtoaster.js index 15815b333e..a2a0abd45b 100644 --- a/bitbake/lib/toaster/toastergui/static/js/libtoaster.js +++ b/bitbake/lib/toaster/toastergui/static/js/libtoaster.js | |||
| @@ -81,14 +81,14 @@ var libtoaster = (function (){ | |||
| 81 | headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, | 81 | headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, |
| 82 | success: function (_data) { | 82 | success: function (_data) { |
| 83 | if (_data.error != "ok") { | 83 | if (_data.error != "ok") { |
| 84 | console.log(_data.error); | 84 | console.warn(_data.error); |
| 85 | } else { | 85 | } else { |
| 86 | if (onsuccess != undefined) onsuccess(_data); | 86 | if (onsuccess != undefined) onsuccess(_data); |
| 87 | } | 87 | } |
| 88 | }, | 88 | }, |
| 89 | error: function (_data) { | 89 | error: function (_data) { |
| 90 | console.log("Call failed"); | 90 | console.warn("Call failed"); |
| 91 | console.log(_data); | 91 | console.warn(_data); |
| 92 | if (onfail) onfail(data); | 92 | if (onfail) onfail(data); |
| 93 | } }); | 93 | } }); |
| 94 | }; | 94 | }; |
| @@ -102,13 +102,13 @@ var libtoaster = (function (){ | |||
| 102 | headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, | 102 | headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, |
| 103 | success: function (_data) { | 103 | success: function (_data) { |
| 104 | if (_data.error != "ok") { | 104 | if (_data.error != "ok") { |
| 105 | console.log(_data.error); | 105 | console.warn(_data.error); |
| 106 | } else { | 106 | } else { |
| 107 | if (onsuccess != undefined) onsuccess(_data); | 107 | if (onsuccess != undefined) onsuccess(_data); |
| 108 | } | 108 | } |
| 109 | }, | 109 | }, |
| 110 | error: function (_data) { | 110 | error: function (_data) { |
| 111 | console.log(_data); | 111 | console.warn(_data); |
| 112 | if (onfail) onfail(data); | 112 | if (onfail) onfail(data); |
| 113 | } | 113 | } |
| 114 | }); | 114 | }); |
| @@ -168,6 +168,7 @@ var libtoaster = (function (){ | |||
| 168 | getProjectInfo: _getProjectInfo, | 168 | getProjectInfo: _getProjectInfo, |
| 169 | getLayerDepsForProject : _getLayerDepsForProject, | 169 | getLayerDepsForProject : _getLayerDepsForProject, |
| 170 | editProject : _editProject, | 170 | editProject : _editProject, |
| 171 | debug: false, | ||
| 171 | } | 172 | } |
| 172 | })(); | 173 | })(); |
| 173 | 174 | ||
| @@ -203,6 +204,15 @@ function reload_params(params) { | |||
| 203 | /* Things that happen for all pages */ | 204 | /* Things that happen for all pages */ |
| 204 | $(document).ready(function() { | 205 | $(document).ready(function() { |
| 205 | 206 | ||
| 207 | /* If we don't have a console object which might be the case in some | ||
| 208 | * browsers, no-op it to avoid undefined errors. | ||
| 209 | */ | ||
| 210 | if (!window.console) { | ||
| 211 | window.console = {}; | ||
| 212 | window.console.warn = function() {}; | ||
| 213 | window.console.error = function() {}; | ||
| 214 | } | ||
| 215 | |||
| 206 | /* | 216 | /* |
| 207 | * PrettyPrint plugin. | 217 | * PrettyPrint plugin. |
| 208 | * | 218 | * |
| @@ -320,4 +330,23 @@ $(document).ready(function() { | |||
| 320 | if (location.href.search('#warnings') > -1) { | 330 | if (location.href.search('#warnings') > -1) { |
| 321 | $('#collapse-warnings').addClass('in'); | 331 | $('#collapse-warnings').addClass('in'); |
| 322 | } | 332 | } |
| 333 | |||
| 334 | function check_for_duplicate_ids () { | ||
| 335 | /* warn about duplicate element ids */ | ||
| 336 | var ids = {}; | ||
| 337 | $("[id]").each(function() { | ||
| 338 | if (this.id && ids[this.id]) { | ||
| 339 | console.warn('Duplicate element id #'+this.id); | ||
| 340 | } | ||
| 341 | ids[this.id] = true; | ||
| 342 | }); | ||
| 343 | } | ||
| 344 | |||
| 345 | if (libtoaster.debug) { | ||
| 346 | check_for_duplicate_ids(); | ||
| 347 | } else { | ||
| 348 | /* Debug is false so supress warnings by overriding the functions */ | ||
| 349 | window.console.warn = function () {}; | ||
| 350 | window.console.error = function () {}; | ||
| 351 | } | ||
| 323 | }); | 352 | }); |
diff --git a/bitbake/lib/toaster/toastergui/static/js/projectapp.js b/bitbake/lib/toaster/toastergui/static/js/projectapp.js index bb97f3292c..767ea13a7e 100644 --- a/bitbake/lib/toaster/toastergui/static/js/projectapp.js +++ b/bitbake/lib/toaster/toastergui/static/js/projectapp.js | |||
| @@ -136,7 +136,7 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc | |||
| 136 | $http({method:"GET", url: $scope.urls.xhr_datatypeahead, params : { type: type, value: currentValue}}) | 136 | $http({method:"GET", url: $scope.urls.xhr_datatypeahead, params : { type: type, value: currentValue}}) |
| 137 | .success(function (_data) { | 137 | .success(function (_data) { |
| 138 | if (_data.error != "ok") { | 138 | if (_data.error != "ok") { |
| 139 | alert(_data.error); | 139 | console.warn(_data.error); |
| 140 | deffered.reject(_data.error); | 140 | deffered.reject(_data.error); |
| 141 | } | 141 | } |
| 142 | deffered.resolve(_data.list); | 142 | deffered.resolve(_data.list); |
| @@ -152,12 +152,12 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc | |||
| 152 | if (inXHRcall) { | 152 | if (inXHRcall) { |
| 153 | if (callparams.data === undefined) { | 153 | if (callparams.data === undefined) { |
| 154 | // we simply skip the data refresh calls | 154 | // we simply skip the data refresh calls |
| 155 | console.log("race on XHR, aborted"); | 155 | console.warn("race on XHR, aborted"); |
| 156 | return; | 156 | return; |
| 157 | } else { | 157 | } else { |
| 158 | // we return a promise that we'll solve by reissuing the command later | 158 | // we return a promise that we'll solve by reissuing the command later |
| 159 | var delayed = $q.defer(); | 159 | var delayed = $q.defer(); |
| 160 | console.log("race on XHR, delayed"); | 160 | console.warn("race on XHR, delayed"); |
| 161 | $interval(function () {$scope._makeXHRCall(callparams).then(function (d) { delayed.resolve(d); });}, 100, 1); | 161 | $interval(function () {$scope._makeXHRCall(callparams).then(function (d) { delayed.resolve(d); });}, 100, 1); |
| 162 | 162 | ||
| 163 | return delayed.promise; | 163 | return delayed.promise; |
| @@ -171,7 +171,7 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc | |||
| 171 | 171 | ||
| 172 | $http(callparams).success(function(_data, _status, _headers, _config) { | 172 | $http(callparams).success(function(_data, _status, _headers, _config) { |
| 173 | if (_data.error != "ok") { | 173 | if (_data.error != "ok") { |
| 174 | alert("Failed XHR request (" + _status + "): " + _data.error); | 174 | console.warn("Failed XHR request (" + _status + "): " + _data.error); |
| 175 | console.error("Failed XHR request: ", _data, _status, _headers, _config); | 175 | console.error("Failed XHR request: ", _data, _status, _headers, _config); |
| 176 | // stop refreshing hte page | 176 | // stop refreshing hte page |
| 177 | $interval.cancel($scope.pollHandle); | 177 | $interval.cancel($scope.pollHandle); |
| @@ -267,7 +267,7 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc | |||
| 267 | deffered.resolve(_data); | 267 | deffered.resolve(_data); |
| 268 | } | 268 | } |
| 269 | }).error(function(_data, _status, _headers, _config) { | 269 | }).error(function(_data, _status, _headers, _config) { |
| 270 | alert("Failed HTTP XHR request (" + _status + ")" + _data); | 270 | console.warn("Failed HTTP XHR request (" + _status + ")" + _data); |
| 271 | console.error("Failed HTTP XHR request: ", _data, _status, _headers, _config); | 271 | console.error("Failed HTTP XHR request: ", _data, _status, _headers, _config); |
| 272 | inXHRcall = false; | 272 | inXHRcall = false; |
| 273 | deffered.reject(_data.error); | 273 | deffered.reject(_data.error); |
| @@ -298,7 +298,7 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc | |||
| 298 | 298 | ||
| 299 | $scope.targetNamedBuild = function(target) { | 299 | $scope.targetNamedBuild = function(target) { |
| 300 | if ($scope.targetName === undefined && $scope.targetName1 === undefined){ | 300 | if ($scope.targetName === undefined && $scope.targetName1 === undefined){ |
| 301 | alert("No target defined, please type in a target name"); | 301 | console.warn("No target defined, please type in a target name"); |
| 302 | return; | 302 | return; |
| 303 | } | 303 | } |
| 304 | 304 | ||
| @@ -310,7 +310,7 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc | |||
| 310 | targets: $scope.safeTargetName, | 310 | targets: $scope.safeTargetName, |
| 311 | } | 311 | } |
| 312 | }).then(function (data) { | 312 | }).then(function (data) { |
| 313 | console.log("received ", data); | 313 | console.warn("received ", data); |
| 314 | $scope.targetName = undefined; | 314 | $scope.targetName = undefined; |
| 315 | $scope.targetName1 = undefined; | 315 | $scope.targetName1 = undefined; |
| 316 | $location.hash('buildslist'); | 316 | $location.hash('buildslist'); |
| @@ -357,7 +357,7 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc | |||
| 357 | $http({method:"GET", url: $scope.urls.xhr_datatypeahead, params : { type: "layerdeps", value: $scope.layerAddId }}) | 357 | $http({method:"GET", url: $scope.urls.xhr_datatypeahead, params : { type: "layerdeps", value: $scope.layerAddId }}) |
| 358 | .success(function (_data) { | 358 | .success(function (_data) { |
| 359 | if (_data.error != "ok") { | 359 | if (_data.error != "ok") { |
| 360 | alert(_data.error); | 360 | console.warn(_data.error); |
| 361 | } else { | 361 | } else { |
| 362 | if (_data.list.length > 0) { | 362 | if (_data.list.length > 0) { |
| 363 | // activate modal | 363 | // activate modal |
| @@ -369,7 +369,7 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc | |||
| 369 | $scope.selectedItems = (function () { s = {}; for (var i = 0; i < items.length; i++) { s[items[i].id] = true; };return s; })(); | 369 | $scope.selectedItems = (function () { s = {}; for (var i = 0; i < items.length; i++) { s[items[i].id] = true; };return s; })(); |
| 370 | 370 | ||
| 371 | $scope.ok = function() { | 371 | $scope.ok = function() { |
| 372 | console.log("scope selected is ", $scope.selectedItems); | 372 | console.warn("scope selected is ", $scope.selectedItems); |
| 373 | $modalInstance.close(Object.keys($scope.selectedItems).filter(function (e) { return $scope.selectedItems[e];})); | 373 | $modalInstance.close(Object.keys($scope.selectedItems).filter(function (e) { return $scope.selectedItems[e];})); |
| 374 | }; | 374 | }; |
| 375 | 375 | ||
| @@ -378,7 +378,7 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc | |||
| 378 | }; | 378 | }; |
| 379 | 379 | ||
| 380 | $scope.update = function() { | 380 | $scope.update = function() { |
| 381 | console.log("updated ", $scope.selectedItems); | 381 | console.warn("updated ", $scope.selectedItems); |
| 382 | }; | 382 | }; |
| 383 | }, | 383 | }, |
| 384 | resolve: { | 384 | resolve: { |
| @@ -393,7 +393,7 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc | |||
| 393 | 393 | ||
| 394 | modalInstance.result.then(function (selectedArray) { | 394 | modalInstance.result.then(function (selectedArray) { |
| 395 | selectedArray.push($scope.layerAddId); | 395 | selectedArray.push($scope.layerAddId); |
| 396 | console.log("selected", selectedArray); | 396 | console.warn("selected", selectedArray); |
| 397 | 397 | ||
| 398 | $scope._makeXHRCall({ | 398 | $scope._makeXHRCall({ |
| 399 | method: "POST", url: $scope.urls.xhr_edit, | 399 | method: "POST", url: $scope.urls.xhr_edit, |
| @@ -473,7 +473,7 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc | |||
| 473 | 473 | ||
| 474 | $scope.edit = function(elementid) { | 474 | $scope.edit = function(elementid) { |
| 475 | var data = {}; | 475 | var data = {}; |
| 476 | console.log("edit with ", elementid); | 476 | console.warn("edit with ", elementid); |
| 477 | var alertText = undefined; | 477 | var alertText = undefined; |
| 478 | var alertZone = undefined; | 478 | var alertZone = undefined; |
| 479 | var oldLayers = []; | 479 | var oldLayers = []; |
| @@ -675,7 +675,7 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc | |||
| 675 | */ | 675 | */ |
| 676 | 676 | ||
| 677 | function test_diff_arrays() { | 677 | function test_diff_arrays() { |
| 678 | _diffArrays([1,2,3], [2,3,4], function(e,f) { return e==f; }, function(e) {console.log("added", e)}, function(e) {console.log("deleted", e);}) | 678 | _diffArrays([1,2,3], [2,3,4], function(e,f) { return e==f; }, function(e) {console.warn("added", e)}, function(e) {console.warn("deleted", e);}) |
| 679 | } | 679 | } |
| 680 | 680 | ||
| 681 | // test_diff_arrays(); | 681 | // test_diff_arrays(); |
| @@ -685,6 +685,6 @@ var s = undefined; | |||
| 685 | function test_set_alert(text) { | 685 | function test_set_alert(text) { |
| 686 | s = angular.element("div#main").scope(); | 686 | s = angular.element("div#main").scope(); |
| 687 | s.displayAlert(s.zone3alerts, text); | 687 | s.displayAlert(s.zone3alerts, text); |
| 688 | console.log(s.zone3alerts); | 688 | console.warn(s.zone3alerts); |
| 689 | s.$digest(); | 689 | s.$digest(); |
| 690 | } | 690 | } |
diff --git a/bitbake/lib/toaster/toastergui/templates/base.html b/bitbake/lib/toaster/toastergui/templates/base.html index bc7a0ee436..e95b5e0cac 100644 --- a/bitbake/lib/toaster/toastergui/templates/base.html +++ b/bitbake/lib/toaster/toastergui/templates/base.html | |||
| @@ -21,6 +21,11 @@ | |||
| 21 | </script> | 21 | </script> |
| 22 | <script src="{% static 'js/libtoaster.js' %}"> | 22 | <script src="{% static 'js/libtoaster.js' %}"> |
| 23 | </script> | 23 | </script> |
| 24 | {% if DEBUG %} | ||
| 25 | <script> | ||
| 26 | libtoaster.debug = true; | ||
| 27 | </script> | ||
| 28 | {% endif %} | ||
| 24 | <script src="{% static 'js/base.js' %}"></script> | 29 | <script src="{% static 'js/base.js' %}"></script> |
| 25 | {%if MANAGED %} | 30 | {%if MANAGED %} |
| 26 | <script> | 31 | <script> |
diff --git a/bitbake/lib/toaster/toastergui/templates/layers.html b/bitbake/lib/toaster/toastergui/templates/layers.html index ced54c2098..33160e5968 100644 --- a/bitbake/lib/toaster/toastergui/templates/layers.html +++ b/bitbake/lib/toaster/toastergui/templates/layers.html | |||
| @@ -126,15 +126,15 @@ function _makeXHREditCall(data, onsuccess, onfail) { | |||
| 126 | headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, | 126 | headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, |
| 127 | success: function (_data) { | 127 | success: function (_data) { |
| 128 | if (_data.error != "ok") { | 128 | if (_data.error != "ok") { |
| 129 | alert(_data.error); | 129 | console.warn(_data.error); |
| 130 | } else { | 130 | } else { |
| 131 | updateButtons(_data.layers.map(function (e) {return e.id})); | 131 | updateButtons(_data.layers.map(function (e) {return e.id})); |
| 132 | if (onsuccess != undefined) onsuccess(_data); | 132 | if (onsuccess != undefined) onsuccess(_data); |
| 133 | } | 133 | } |
| 134 | }, | 134 | }, |
| 135 | error: function (_data) { | 135 | error: function (_data) { |
| 136 | alert("Call failed"); | 136 | console.warn("Call failed"); |
| 137 | console.log(_data); | 137 | console.warn(_data); |
| 138 | } | 138 | } |
| 139 | }); | 139 | }); |
| 140 | } | 140 | } |
| @@ -215,7 +215,7 @@ function layerAdd(layerId, layerName, layerURL) { | |||
| 215 | data: {'type': 'layerdeps','value':layerId}, | 215 | data: {'type': 'layerdeps','value':layerId}, |
| 216 | success: function(_data) { | 216 | success: function(_data) { |
| 217 | if (_data.error != "ok") { | 217 | if (_data.error != "ok") { |
| 218 | alert(_data.error); | 218 | console.warn(_data.error); |
| 219 | } else { | 219 | } else { |
| 220 | updateLayerCountLabels(_data.list.length+1); | 220 | updateLayerCountLabels(_data.list.length+1); |
| 221 | 221 | ||
diff --git a/bitbake/lib/toaster/toastergui/templates/mrb_section.html b/bitbake/lib/toaster/toastergui/templates/mrb_section.html index 73031e2d1f..432955ab88 100644 --- a/bitbake/lib/toaster/toastergui/templates/mrb_section.html +++ b/bitbake/lib/toaster/toastergui/templates/mrb_section.html | |||
| @@ -79,21 +79,21 @@ function _makeXHRBuildCall(url, data, onsuccess, onfail) { | |||
| 79 | headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, | 79 | headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, |
| 80 | success: function (_data) { | 80 | success: function (_data) { |
| 81 | if (_data.error != "ok") { | 81 | if (_data.error != "ok") { |
| 82 | alert(_data.error); | 82 | console.warn(_data.error); |
| 83 | } else { | 83 | } else { |
| 84 | if (onsuccess != undefined) onsuccess(_data); | 84 | if (onsuccess != undefined) onsuccess(_data); |
| 85 | } | 85 | } |
| 86 | }, | 86 | }, |
| 87 | error: function (_data) { | 87 | error: function (_data) { |
| 88 | alert("Call failed"); | 88 | console.warn("Call failed"); |
| 89 | console.log(_data); | 89 | console.warn(_data); |
| 90 | if (onfail) onfail(data); | 90 | if (onfail) onfail(data); |
| 91 | } }); | 91 | } }); |
| 92 | } | 92 | } |
| 93 | 93 | ||
| 94 | 94 | ||
| 95 | function scheduleBuild(url, projectName, buildlist) { | 95 | function scheduleBuild(url, projectName, buildlist) { |
| 96 | console.log("scheduleBuild"); | 96 | console.warn("scheduleBuild"); |
| 97 | _makeXHRBuildCall(url, {targets: buildlist.join(" ")}, function (_data) { | 97 | _makeXHRBuildCall(url, {targets: buildlist.join(" ")}, function (_data) { |
| 98 | 98 | ||
| 99 | $('#latest-builds').prepend('<div class="alert alert-info" style="padding-top:0px">' + '<span class="label label-info" style="font-weight: normal; margin-bottom: 5px; margin-left:-15px; padding-top:5px;">'+projectName+'</span><div class="row-fluid">' + | 99 | $('#latest-builds').prepend('<div class="alert alert-info" style="padding-top:0px">' + '<span class="label label-info" style="font-weight: normal; margin-bottom: 5px; margin-left:-15px; padding-top:5px;">'+projectName+'</span><div class="row-fluid">' + |
diff --git a/bitbake/lib/toaster/toastergui/templates/targets.html b/bitbake/lib/toaster/toastergui/templates/targets.html index f4313f92b2..cc339fbbb7 100644 --- a/bitbake/lib/toaster/toastergui/templates/targets.html +++ b/bitbake/lib/toaster/toastergui/templates/targets.html | |||
| @@ -119,15 +119,15 @@ function _makeXHREditCall(data, onsuccess, onfail) { | |||
| 119 | headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, | 119 | headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, |
| 120 | success: function (_data) { | 120 | success: function (_data) { |
| 121 | if (_data.error != "ok") { | 121 | if (_data.error != "ok") { |
| 122 | alert(_data.error); | 122 | console.warn(_data.error); |
| 123 | } else { | 123 | } else { |
| 124 | updateButtons(_data.layers.map(function (e) {return e.id})); | 124 | updateButtons(_data.layers.map(function (e) {return e.id})); |
| 125 | if (onsuccess != undefined) onsuccess(_data); | 125 | if (onsuccess != undefined) onsuccess(_data); |
| 126 | } | 126 | } |
| 127 | }, | 127 | }, |
| 128 | error: function (_data) { | 128 | error: function (_data) { |
| 129 | alert("Call failed"); | 129 | console.warn("Call failed"); |
| 130 | console.log(_data); | 130 | console.warn(_data); |
| 131 | } | 131 | } |
| 132 | }); | 132 | }); |
| 133 | } | 133 | } |
| @@ -202,7 +202,7 @@ function layerAdd(layerId, layerName, layerURL, pressedButtonId) { | |||
| 202 | data: {'type': 'layerdeps','value':layerId}, | 202 | data: {'type': 'layerdeps','value':layerId}, |
| 203 | success: function(_data) { | 203 | success: function(_data) { |
| 204 | if (_data.error != "ok") { | 204 | if (_data.error != "ok") { |
| 205 | alert(_data.error); | 205 | console.warn(_data.error); |
| 206 | } else { | 206 | } else { |
| 207 | updateLayerCountLabels(_data.list.length+1); | 207 | updateLayerCountLabels(_data.list.length+1); |
| 208 | 208 | ||
diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py index 679c1e9430..420b37cb73 100755 --- a/bitbake/lib/toaster/toastergui/views.py +++ b/bitbake/lib/toaster/toastergui/views.py | |||
| @@ -1898,7 +1898,8 @@ if toastermain.settings.MANAGED: | |||
| 1898 | def managedcontextprocessor(request): | 1898 | def managedcontextprocessor(request): |
| 1899 | ret = { | 1899 | ret = { |
| 1900 | "projects": Project.objects.all(), | 1900 | "projects": Project.objects.all(), |
| 1901 | "MANAGED" : toastermain.settings.MANAGED | 1901 | "MANAGED" : toastermain.settings.MANAGED, |
| 1902 | "DEBUG" : toastermain.settings.DEBUG | ||
| 1902 | } | 1903 | } |
| 1903 | if 'project_id' in request.session: | 1904 | if 'project_id' in request.session: |
| 1904 | try: | 1905 | try: |
| @@ -2923,7 +2924,8 @@ else: | |||
| 2923 | def managedcontextprocessor(request): | 2924 | def managedcontextprocessor(request): |
| 2924 | return { | 2925 | return { |
| 2925 | "projects": [], | 2926 | "projects": [], |
| 2926 | "MANAGED" : toastermain.settings.MANAGED | 2927 | "MANAGED" : toastermain.settings.MANAGED, |
| 2928 | "DEBUG" : toastermain.settings.DEBUG | ||
| 2927 | } | 2929 | } |
| 2928 | 2930 | ||
| 2929 | def newproject(request): | 2931 | def newproject(request): |
