"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 = $('
'); 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(); } }