Hi, I've tried, but I can't apply this patchset on current poky/ master - can you please rebase ?
Cheers, Alex On Wed, Dec 10, 2014 at 10:57 AM, Michael Wood <[email protected]> wrote: > 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. > > Signed-off-by: Michael Wood <[email protected]> > --- > .../lib/toaster/toastergui/static/js/libtoaster.js | 39 > +++++++++++++++++++--- > .../lib/toaster/toastergui/static/js/projectapp.js | 28 ++++++++-------- > bitbake/lib/toaster/toastergui/templates/base.html | 5 +++ > .../lib/toaster/toastergui/templates/layers.html | 8 ++--- > .../toaster/toastergui/templates/mrb_section.html | 8 ++--- > .../lib/toaster/toastergui/templates/targets.html | 8 ++--- > bitbake/lib/toaster/toastergui/views.py | 6 ++-- > 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 37fc80e..390a63c 100644 > --- a/bitbake/lib/toaster/toastergui/static/js/libtoaster.js > +++ b/bitbake/lib/toaster/toastergui/static/js/libtoaster.js > @@ -76,14 +76,14 @@ var libtoaster = (function (){ > headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, > success: function (_data) { > if (_data.error != "ok") { > - console.log(_data.error); > + console.warn(_data.error); > } else { > if (onsuccess != undefined) onsuccess(_data); > } > }, > error: function (_data) { > - console.log("Call failed"); > - console.log(_data); > + console.warn("Call failed"); > + console.warn(_data); > if (onfail) onfail(data); > } }); > }; > @@ -97,13 +97,13 @@ var libtoaster = (function (){ > headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, > success: function (_data) { > if (_data.error != "ok") { > - console.log(_data.error); > + console.warn(_data.error); > } else { > if (onsuccess != undefined) onsuccess(_data); > } > }, > error: function (_data) { > - console.log(_data); > + console.warn(_data); > if (onfail) onfail(data); > } > }); > @@ -114,6 +114,7 @@ var libtoaster = (function (){ > startABuild : _startABuild, > makeTypeahead : _makeTypeahead, > getProjectInfo: _getProjectInfo, > + debug: false, > } > })(); > > @@ -149,6 +150,15 @@ function reload_params(params) { > /* Things that happen for all pages */ > $(document).ready(function() { > > + /* If we don't have a console object which might be the case in some > + * browsers, no-op it to avoid undefined errors. > + */ > + if (!window.console) { > + window.console = {}; > + window.console.warn = function() {}; > + window.console.error = function() {}; > + } > + > /* > * PrettyPrint plugin. > * > @@ -266,4 +276,23 @@ $(document).ready(function() { > if (location.href.search('#warnings') > -1) { > $('#collapse-warnings').addClass('in'); > } > + > + function check_for_duplicate_ids () { > + /* warn about duplicate element ids */ > + var ids = {}; > + $("[id]").each(function() { > + if (this.id && ids[this.id]) { > + console.warn('Duplicate element id #'+this.id); > + } > + ids[this.id] = true; > + }); > + } > + > + if (libtoaster.debug) { > + check_for_duplicate_ids(); > + } else { > + /* Debug is false so supress warnings by overriding the functions */ > + window.console.warn = function () {}; > + window.console.error = function () {}; > + } > }); > diff --git a/bitbake/lib/toaster/toastergui/static/js/projectapp.js > b/bitbake/lib/toaster/toastergui/static/js/projectapp.js > index e9b07c7..411a184 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 > $http({method:"GET", url: $scope.urls.xhr_datatypeahead, params : > { type: type, value: currentValue}}) > .success(function (_data) { > if (_data.error != "ok") { > - alert(_data.error); > + console.warn(_data.error); > deffered.reject(_data.error); > } > deffered.resolve(_data.list); > @@ -152,12 +152,12 @@ projectApp.controller('prjCtrl', function($scope, > $modal, $http, $interval, $loc > if (inXHRcall) { > if (callparams.data === undefined) { > // we simply skip the data refresh calls > - console.log("race on XHR, aborted"); > + console.warn("race on XHR, aborted"); > return; > } else { > // we return a promise that we'll solve by reissuing the > command later > var delayed = $q.defer(); > - console.log("race on XHR, delayed"); > + console.warn("race on XHR, delayed"); > $interval(function () > {$scope._makeXHRCall(callparams).then(function (d) { delayed.resolve(d); > });}, 100, 1); > > return delayed.promise; > @@ -171,7 +171,7 @@ projectApp.controller('prjCtrl', function($scope, > $modal, $http, $interval, $loc > > $http(callparams).success(function(_data, _status, _headers, > _config) { > if (_data.error != "ok") { > - alert("Failed XHR request (" + _status + "): " + > _data.error); > + console.warn("Failed XHR request (" + _status + "): " + > _data.error); > console.error("Failed XHR request: ", _data, _status, > _headers, _config); > // stop refreshing hte page > $interval.cancel($scope.pollHandle); > @@ -267,7 +267,7 @@ projectApp.controller('prjCtrl', function($scope, > $modal, $http, $interval, $loc > deffered.resolve(_data); > } > }).error(function(_data, _status, _headers, _config) { > - alert("Failed HTTP XHR request (" + _status + ")" + > _data); > + console.warn("Failed HTTP XHR request (" + _status + ")" > + _data); > console.error("Failed HTTP XHR request: ", _data, > _status, _headers, _config); > inXHRcall = false; > deffered.reject(_data.error); > @@ -298,7 +298,7 @@ projectApp.controller('prjCtrl', function($scope, > $modal, $http, $interval, $loc > > $scope.targetNamedBuild = function(target) { > if ($scope.targetName === undefined && $scope.targetName1 === > undefined){ > - alert("No target defined, please type in a target name"); > + console.warn("No target defined, please type in a target > name"); > return; > } > > @@ -310,7 +310,7 @@ projectApp.controller('prjCtrl', function($scope, > $modal, $http, $interval, $loc > targets: $scope.safeTargetName, > } > }).then(function (data) { > - console.log("received ", data); > + console.warn("received ", data); > $scope.targetName = undefined; > $scope.targetName1 = undefined; > $location.hash('buildslist'); > @@ -357,7 +357,7 @@ projectApp.controller('prjCtrl', function($scope, > $modal, $http, $interval, $loc > $http({method:"GET", url: $scope.urls.xhr_datatypeahead, params : > { type: "layerdeps", value: $scope.layerAddId }}) > .success(function (_data) { > if (_data.error != "ok") { > - alert(_data.error); > + console.warn(_data.error); > } else { > if (_data.list.length > 0) { > // activate modal > @@ -369,7 +369,7 @@ projectApp.controller('prjCtrl', function($scope, > $modal, $http, $interval, $loc > $scope.selectedItems = (function () { s = {}; > for (var i = 0; i < items.length; i++) { s[items[i].id] = true; };return s; > })(); > > $scope.ok = function() { > - console.log("scope selected is ", > $scope.selectedItems); > + console.warn("scope selected is ", > $scope.selectedItems); > > $modalInstance.close(Object.keys($scope.selectedItems).filter(function (e) > { return $scope.selectedItems[e];})); > }; > > @@ -378,7 +378,7 @@ projectApp.controller('prjCtrl', function($scope, > $modal, $http, $interval, $loc > }; > > $scope.update = function() { > - console.log("updated ", $scope.selectedItems); > + console.warn("updated ", > $scope.selectedItems); > }; > }, > resolve: { > @@ -393,7 +393,7 @@ projectApp.controller('prjCtrl', function($scope, > $modal, $http, $interval, $loc > > modalInstance.result.then(function (selectedArray) { > selectedArray.push($scope.layerAddId); > - console.log("selected", selectedArray); > + console.warn("selected", selectedArray); > > $scope._makeXHRCall({ > method: "POST", url: $scope.urls.xhr_edit, > @@ -473,7 +473,7 @@ projectApp.controller('prjCtrl', function($scope, > $modal, $http, $interval, $loc > > $scope.edit = function(elementid) { > var data = {}; > - console.log("edit with ", elementid); > + console.warn("edit with ", elementid); > var alertText = undefined; > var alertZone = undefined; > var oldLayers = []; > @@ -637,7 +637,7 @@ projectApp.controller('prjCtrl', function($scope, > $modal, $http, $interval, $loc > */ > > function test_diff_arrays() { > - _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);}) > + _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);}) > } > > // test_diff_arrays(); > @@ -647,6 +647,6 @@ var s = undefined; > function test_set_alert(text) { > s = angular.element("div#main").scope(); > s.displayAlert(s.zone3alerts, text); > - console.log(s.zone3alerts); > + console.warn(s.zone3alerts); > s.$digest(); > } > diff --git a/bitbake/lib/toaster/toastergui/templates/base.html > b/bitbake/lib/toaster/toastergui/templates/base.html > index 594c495..e828106 100644 > --- a/bitbake/lib/toaster/toastergui/templates/base.html > +++ b/bitbake/lib/toaster/toastergui/templates/base.html > @@ -21,6 +21,11 @@ > </script> > <script src="{% static 'js/libtoaster.js' %}"> > </script> > +{% if DEBUG %} > +<script> > + libtoaster.debug = true; > + </script> > +{% endif %} > <script src="{% static 'js/base.js' %}"></script> > {%if MANAGED %} > <script> > diff --git a/bitbake/lib/toaster/toastergui/templates/layers.html > b/bitbake/lib/toaster/toastergui/templates/layers.html > index ced54c2..33160e5 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) { > headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, > success: function (_data) { > if (_data.error != "ok") { > - alert(_data.error); > + console.warn(_data.error); > } else { > updateButtons(_data.layers.map(function (e) {return e.id > })); > if (onsuccess != undefined) onsuccess(_data); > } > }, > error: function (_data) { > - alert("Call failed"); > - console.log(_data); > + console.warn("Call failed"); > + console.warn(_data); > } > }); > } > @@ -215,7 +215,7 @@ function layerAdd(layerId, layerName, layerURL) { > data: {'type': 'layerdeps','value':layerId}, > success: function(_data) { > if (_data.error != "ok") { > - alert(_data.error); > + console.warn(_data.error); > } else { > updateLayerCountLabels(_data.list.length+1); > > diff --git a/bitbake/lib/toaster/toastergui/templates/mrb_section.html > b/bitbake/lib/toaster/toastergui/templates/mrb_section.html > index 73031e2..432955a 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) { > headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, > success: function (_data) { > if (_data.error != "ok") { > - alert(_data.error); > + console.warn(_data.error); > } else { > if (onsuccess != undefined) onsuccess(_data); > } > }, > error: function (_data) { > - alert("Call failed"); > - console.log(_data); > + console.warn("Call failed"); > + console.warn(_data); > if (onfail) onfail(data); > } }); > } > > > function scheduleBuild(url, projectName, buildlist) { > - console.log("scheduleBuild"); > + console.warn("scheduleBuild"); > _makeXHRBuildCall(url, {targets: buildlist.join(" ")}, function (_data) > { > > $('#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 f4313f9..cc339fb 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) { > headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, > success: function (_data) { > if (_data.error != "ok") { > - alert(_data.error); > + console.warn(_data.error); > } else { > updateButtons(_data.layers.map(function (e) {return e.id > })); > if (onsuccess != undefined) onsuccess(_data); > } > }, > error: function (_data) { > - alert("Call failed"); > - console.log(_data); > + console.warn("Call failed"); > + console.warn(_data); > } > }); > } > @@ -202,7 +202,7 @@ function layerAdd(layerId, layerName, layerURL, > pressedButtonId) { > data: {'type': 'layerdeps','value':layerId}, > success: function(_data) { > if (_data.error != "ok") { > - alert(_data.error); > + console.warn(_data.error); > } else { > updateLayerCountLabels(_data.list.length+1); > > diff --git a/bitbake/lib/toaster/toastergui/views.py > b/bitbake/lib/toaster/toastergui/views.py > index 8301f6c..49a567f 100755 > --- a/bitbake/lib/toaster/toastergui/views.py > +++ b/bitbake/lib/toaster/toastergui/views.py > @@ -1878,7 +1878,8 @@ if toastermain.settings.MANAGED: > def managedcontextprocessor(request): > ret = { > "projects": Project.objects.all(), > - "MANAGED" : toastermain.settings.MANAGED > + "MANAGED" : toastermain.settings.MANAGED, > + "DEBUG" : toastermain.settings.DEBUG > } > if 'project_id' in request.session: > try: > @@ -2803,7 +2804,8 @@ else: > def managedcontextprocessor(request): > return { > "projects": [], > - "MANAGED" : toastermain.settings.MANAGED > + "MANAGED" : toastermain.settings.MANAGED, > + "DEBUG" : toastermain.settings.DEBUG > } > > def newproject(request): > -- > 2.1.0 > > -- > _______________________________________________ > toaster mailing list > [email protected] > https://lists.yoctoproject.org/listinfo/toaster > -- Alex Damian Yocto Project SSG / OTC
-- _______________________________________________ toaster mailing list [email protected] https://lists.yoctoproject.org/listinfo/toaster
