diff --git a/bitbake/lib/toaster/toastergui/static/js/machines.js b/bitbake/lib/toaster/toastergui/static/js/machines.js new file mode 100644 index 0000000000..a3ea43baed --- /dev/null +++ b/bitbake/lib/toaster/toastergui/static/js/machines.js @@ -0,0 +1,89 @@ +"use strict" + +function machinesPageInit (ctx) { + + + function setLayerInCurrentPrj(addLayerBtn, depsList){ + var alertMsg = $("#alert-msg"); + + $(".select-or-add").each(function(){ + /* If we have added a layer it may also enable other machines so search + * for other machines that have that layer and enable them */ + var selectMachineBtn = $(this).children(".select-machine-btn"); + var otherAddLayerBtns = $(this).children(".add-layer"); + + if (addLayerBtn.data('layer-version-id') == selectMachineBtn.data('layer-version-id')) { + otherAddLayerBtns.fadeOut(function(){ + selectMachineBtn.fadeIn(); + }); + } + }); + + /* Reset alert message */ + alertMsg.text(""); + + /* If we have added layer dependencies */ + if (depsList) { + alertMsg.append("You have added "+(depsList.length+1)+" layers: and its dependencies "); + + /* Build the layer deps list */ + depsList.map(function(layer, i){ + var link = $(""); + + link.attr("href", layer.layerdetailurl); + link.text(layer.name); + link.tooltip({title: layer.tooltip}); + + if (i != 0) + alertMsg.append(", "); + + alertMsg.append(link); + }); + } else { + alertMsg.append("You have added 1 layer: "); + } + + var layerName = addLayerBtn.data('layer-name'); + alertMsg.children("#layer-affected-name").text(layerName); + $("#alert-area").show(); + } + + /* Add or remove this layer from the project */ + $(".add-layer").click(function() { + var btn = $(this); + /* If adding get the deps for this layer */ + var layer = { + id : $(this).data('layer-version-id'), + name : $(this).data('layer-name'), + }; + + libtoaster.getLayerDepsForProject(ctx.xhrDataTypeaheadUrl, ctx.projectId, layer.id, function (data) { + /* got result for dependencies */ + if (data.list.length == 0){ + var editData = { layerAdd : layer.id }; + libtoaster.editProject(ctx.xhrEditProjectUrl, ctx.projectId, editData, + function() { + setLayerInCurrentPrj(btn); + }); + return; + } else { + /* The add deps will include this layer so no need to add it + * separately. + */ + show_layer_deps_modal(ctx.projectId, layer, data.list, null, null, true, function () { + /* Success add deps and layer */ + setLayerInCurrentPrj(btn, data.list); + console.log ("TODO SUCCESS"); + }); + } + }, null); + }); + + $(".select-machine-btn").click(function(){ + var data = { machineName : $(this).data('machine-name') }; + libtoaster.editProject(ctx.xhrEditProjectUrl, ctx.projectId, data, + function (){ + window.location.replace(ctx.projectPageUrl); + }, null); + }); +} diff --git a/bitbake/lib/toaster/toastergui/templates/machines.html b/bitbake/lib/toaster/toastergui/templates/machines.html index e0bda51cf5..c0d4c6cc33 100644 --- a/bitbake/lib/toaster/toastergui/templates/machines.html +++ b/bitbake/lib/toaster/toastergui/templates/machines.html @@ -1,62 +1,65 @@ {% extends "baseprojectpage.html" %} {% load projecttags %} {% load humanize %} - +{% load static %} {% block localbreadcrumb %}
{{o.file_path}}
-
-