I spotted an issue, inline below. On 25 February 2016 at 18:21, Michael Wood <[email protected]> wrote:
> Update the implementation of startABuild and cancelAbuild to reflect > changes to the backend api. We now have a dedicated endpoint to make > calls into so add this url to libtoaster.ctx and allow passing null in > as a url value to indicate that we want to use the current project > > Also: > - Fix some documentation comments > - Add the convenience of passing in an array of targets to startABuild > > Signed-off-by: Michael Wood <[email protected]> > --- > .../toaster/toastergui/static/js/customrecipe.js | 4 +-- > .../lib/toaster/toastergui/static/js/layerBtn.js | 3 +- > .../lib/toaster/toastergui/static/js/libtoaster.js | 41 > ++++++++++++++-------- > .../toaster/toastergui/static/js/projectpage.js | 4 +-- > .../toaster/toastergui/static/js/projecttopbar.js | 6 ++-- > .../toaster/toastergui/static/js/recipedetails.js | 4 +-- > bitbake/lib/toaster/toastergui/templates/base.html | 1 + > 7 files changed, 34 insertions(+), 29 deletions(-) > > diff --git a/bitbake/lib/toaster/toastergui/static/js/customrecipe.js > b/bitbake/lib/toaster/toastergui/static/js/customrecipe.js > index 3c57899..131ac2a 100644 > --- a/bitbake/lib/toaster/toastergui/static/js/customrecipe.js > +++ b/bitbake/lib/toaster/toastergui/static/js/customrecipe.js > @@ -207,9 +207,7 @@ function customRecipePageInit(ctx) { > > /* Trigger a build of your custom image */ > $(".build-custom-image").click(function(){ > - libtoaster.startABuild(libtoaster.ctx.projectBuildsUrl, > - libtoaster.ctx.projectId, > - ctx.recipe.name, > + libtoaster.startABuild(null, ctx.recipe.name, > function(){ > window.location.replace(libtoaster.ctx.projectBuildsUrl); > }); > diff --git a/bitbake/lib/toaster/toastergui/static/js/layerBtn.js > b/bitbake/lib/toaster/toastergui/static/js/layerBtn.js > index b2666ab..aa43284 100644 > --- a/bitbake/lib/toaster/toastergui/static/js/layerBtn.js > +++ b/bitbake/lib/toaster/toastergui/static/js/layerBtn.js > @@ -60,8 +60,7 @@ function layerBtnsInit() { > e.preventDefault(); > var recipe = $(this).data('recipe-name'); > > - libtoaster.startABuild(libtoaster.ctx.projectBuildsUrl, > - libtoaster.ctx.projectId, recipe, > + libtoaster.startABuild(null, recipe, > function(){ > /* Success */ > window.location.replace(libtoaster.ctx.projectBuildsUrl); > diff --git a/bitbake/lib/toaster/toastergui/static/js/libtoaster.js > b/bitbake/lib/toaster/toastergui/static/js/libtoaster.js > index b6b49b6..8d1d20f 100644 > --- a/bitbake/lib/toaster/toastergui/static/js/libtoaster.js > +++ b/bitbake/lib/toaster/toastergui/static/js/libtoaster.js > @@ -90,27 +90,35 @@ var libtoaster = (function (){ > jQElement.data('typeahead').render = customRenderFunc; > } > > - /* > - * url - the url of the xhr build */ > - function _startABuild (url, project_id, targets, onsuccess, onfail) { > + /* startABuild: > + * url: xhr_buildrequest or null for current project > + * targets: an array or space separated list of targets to build > + * onsuccess: callback for successful execution > + * onfail: callback for failed execution > + */ > + function _startABuild (url, targets, onsuccess, onfail) { > > - var data = { > - project_id : project_id, > - targets : targets, > + if (!url) > + url = libtoaster.ctx.xhrBuildRequestUrl; > + > + /* Flatten the array of targets into a space spearated list */ > + if (targets instanceof Array){ > + targets = targets.reduce(function(prevV, nextV){ > + return prev + ' ' + next; > + }); > } > > $.ajax( { > type: "POST", > url: url, > - data: data, > + data: { 'targets' : targets }, > headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, > success: function (_data) { > - /* No proper reponse YOCTO #7995 > if (_data.error !== "ok") { > console.warn(_data.error); > - } else { */ > + } else { > if (onsuccess !== undefined) onsuccess(_data); > - // } > + } > }, > error: function (_data) { > The error function has an argument _data, but in the body of that function you have: error: function (_data) { console.warn("Call failed"); console.warn(_data); if (onfail) onfail(data); <- reference to data, not _data When a failure does occur (as it did for me), onfail() doesn't execute (because of a ReferenceError to data), so the page hangs. > console.warn("Call failed"); > @@ -120,22 +128,25 @@ var libtoaster = (function (){ > } > > /* cancelABuild: > - * url: projectbuilds > - * builds_ids: space separated list of build request ids > + * url: xhr_buildrequest url or null for current project > + * buildRequestIds: space separated list of build request ids > * onsuccess: callback for successful execution > * onfail: callback for failed execution > */ > - function _cancelABuild(url, build_ids, onsuccess, onfail){ > + function _cancelABuild(url, buildRequestIds, onsuccess, onfail){ > + if (!url) > + url = libtoaster.ctx.xhrBuildRequestUrl; > + > $.ajax( { > type: "POST", > url: url, > - data: { 'buildCancel': build_ids }, > + data: { 'buildCancel': buildRequestIds }, > headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, > success: function (_data) { > if (_data.error !== "ok") { > console.warn(_data.error); > } else { > - if (onsuccess !== undefined) onsuccess(_data); > + if (onsuccess) onsuccess(_data); > } > }, > error: function (_data) { > diff --git a/bitbake/lib/toaster/toastergui/static/js/projectpage.js > b/bitbake/lib/toaster/toastergui/static/js/projectpage.js > index 292ceb7..78a9506 100644 > --- a/bitbake/lib/toaster/toastergui/static/js/projectpage.js > +++ b/bitbake/lib/toaster/toastergui/static/js/projectpage.js > @@ -232,9 +232,7 @@ function projectPageInit(ctx) { > > toBuild = toBuild.trim(); > > - libtoaster.startABuild(libtoaster.ctx.projectBuildsUrl, > - libtoaster.ctx.projectId, > - toBuild, > + libtoaster.startABuild(null, toBuild, > function(){ > /* Build request started */ > window.location.replace(libtoaster.ctx.projectBuildsUrl); > diff --git a/bitbake/lib/toaster/toastergui/static/js/projecttopbar.js > b/bitbake/lib/toaster/toastergui/static/js/projecttopbar.js > index 58a32a0..b09f974 100644 > --- a/bitbake/lib/toaster/toastergui/static/js/projecttopbar.js > +++ b/bitbake/lib/toaster/toastergui/static/js/projecttopbar.js > @@ -82,9 +82,9 @@ function projectTopBarInit(ctx) { > selectedTarget = { name: newBuildTargetInput.val() }; > > /* Fire off the build */ > - libtoaster.startABuild(libtoaster.ctx.projectBuildsUrl, > - null, selectedTarget.name, function(){ > - window.location.replace(libtoaster.ctx.projectBuildsUrl); > + libtoaster.startABuild(null, selectedTarget.name, > + function(){ > + window.location.replace(libtoaster.ctx.projectBuildsUrl); > }, null); > }); > } > diff --git a/bitbake/lib/toaster/toastergui/static/js/recipedetails.js > b/bitbake/lib/toaster/toastergui/static/js/recipedetails.js > index 2bfd0a4..d5f9eac 100644 > --- a/bitbake/lib/toaster/toastergui/static/js/recipedetails.js > +++ b/bitbake/lib/toaster/toastergui/static/js/recipedetails.js > @@ -42,9 +42,7 @@ function recipeDetailsPageInit(ctx){ > > /* Trigger a build of your custom image */ > $(".build-recipe-btn").click(function(){ > - libtoaster.startABuild(libtoaster.ctx.projectBuildsUrl, > - libtoaster.ctx.projectId, > - ctx.recipe.name, > + libtoaster.startABuild(null, ctx.recipe.name, > function(){ > window.location.replace(libtoaster.ctx.projectBuildsUrl); > }); > diff --git a/bitbake/lib/toaster/toastergui/templates/base.html > b/bitbake/lib/toaster/toastergui/templates/base.html > index 6994bcc..ed15c59 100644 > --- a/bitbake/lib/toaster/toastergui/templates/base.html > +++ b/bitbake/lib/toaster/toastergui/templates/base.html > @@ -47,6 +47,7 @@ > projectBuildsUrl: {% url 'projectbuilds' project.id as pburl > %}{{pburl|json}}, > xhrCustomRecipeUrl : "{% url 'xhr_customrecipe' %}", > projectId : {{project.id}}, > + xhrBuildRequestUrl: "{% url 'xhr_buildrequest' project.id %}", > {% else %} > projectId : undefined, > projectPageUrl : undefined, > -- > 2.1.4 > > -- > _______________________________________________ > toaster mailing list > [email protected] > https://lists.yoctoproject.org/listinfo/toaster > -- Elliot Smith Software Engineer Intel Open Source Technology Centre
-- _______________________________________________ toaster mailing list [email protected] https://lists.yoctoproject.org/listinfo/toaster
