diff options
Diffstat (limited to 'yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerBtn.js')
-rw-r--r-- | yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerBtn.js | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerBtn.js b/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerBtn.js new file mode 100644 index 000000000..a0509f9aa --- /dev/null +++ b/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerBtn.js @@ -0,0 +1,77 @@ +"use strict"; + +function layerBtnsInit(ctx) { + + /* Remove any current bindings to avoid duplicated binds */ + $(".layerbtn").unbind('click'); + + $(".layerbtn").click(function (){ + var layerObj = $(this).data("layer"); + var add = ($(this).data('directive') === "add"); + var thisBtn = $(this); + + libtoaster.addRmLayer(layerObj, add, function (layerDepsList){ + libtoaster.showChangeNotification(libtoaster.makeLayerAddRmAlertMsg(layerObj, layerDepsList, add)); + + /* In-cell notification */ + var notification = $('<div id="temp-inline-notify" style="display: none; font-size: 11px; line-height: 1.3;" class="tooltip-inner"></div>'); + thisBtn.parent().append(notification); + + if (add){ + if (layerDepsList.length > 0) + notification.text(String(layerDepsList.length + 1) + " layers added"); + else + notification.text("1 layer added"); + + var layerBtnsFadeOut = $(); + var layerExistsBtnFadeIn = $(); + + layerBtnsFadeOut = layerBtnsFadeOut.add(".layer-add-" + layerObj.id); + layerExistsBtnFadeIn = layerExistsBtnFadeIn.add(".layer-exists-" + layerObj.id); + + for (var i in layerDepsList){ + layerBtnsFadeOut = layerBtnsFadeOut.add(".layer-add-" + layerDepsList[i].id); + layerExistsBtnFadeIn = layerExistsBtnFadeIn.add(".layer-exists-" + layerDepsList[i].id); + } + + layerBtnsFadeOut.fadeOut().promise().done(function(){ + notification.fadeIn().delay(500).fadeOut(function(){ + /* Fade in the buttons */ + layerExistsBtnFadeIn.fadeIn(); + notification.remove(); + }); + }); + } else { + notification.text("1 layer deleted"); + /* Deleting a layer we only hanlde the one button */ + thisBtn.fadeOut(function(){ + notification.fadeIn().delay(500).fadeOut(function(){ + $(".layer-add-" + layerObj.id).fadeIn(); + notification.remove(); + }); + }); + } + + }); + }); + + $(".build-recipe-btn").unbind('click'); + $(".build-recipe-btn").click(function(e){ + e.preventDefault(); + var recipe = $(this).data('recipe-name'); + + libtoaster.startABuild(libtoaster.ctx.projectBuildsUrl, + libtoaster.ctx.projectId, recipe, + function(){ + /* Success */ + window.location.replace(libtoaster.ctx.projectBuildsUrl); + }); + }); + + /* Setup the initial state of the buttons */ + + for (var i in ctx.projectLayers){ + $(".layer-exists-" + ctx.projectLayers[i]).show(); + $(".layer-add-" + ctx.projectLayers[i]).hide(); + } +} |