"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 to : 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 to : ");
}
var layerName = addLayerBtn.data('layer-name');
alertMsg.children("#layer-affected-name").text(layerName);
alertMsg.children("#project-affected-name").text(ctx.projectName).attr('href', ctx.projectPageUrl);
$("#alert-area").show();
}
$("#dismiss-alert").click(function(){ $(this).parent().hide() });
/* 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);
});
}
}, 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+"#/machineselected");
}, null);
});
$("#show-all-btn").click(function(){
$("#search").val("")
$("#searchform").submit();
});
}