in source/html/js/app/ui/selected_item_view.js [23:136]
var display_selected_nodes = function(diagram, node_ids) {
nodes_ids = (Array.isArray(node_ids) ? node_ids : [node_ids]);
// console.log("this node");
// console.log(node_ids);
var node = model.nodes.get(node_ids[0]);
var found_on = diagrams.have_all(node.id);
// console.log(found_on);
var diagram_links = "";
var diagram_link_ids = [];
for (let diagram of found_on) {
var id = ui_util.makeid();
var html = `<a href="#" data-diagram-name="${diagram.name}" draggable="true" id="${id}">${diagram.name}</a> `;
diagram_link_ids.push({
id: id,
node_id: node.id,
diagram: diagram
});
diagram_links += html;
}
var diagram_html = `<p class="card-text small text-muted mb-0 pb-0"><b>Diagrams:</b> ${diagram_links}</p>`;
channels.arn_to_channels(node.id).then(function(tile_names) {
var channel_tile_link_ids = [];
var tile_html = "";
if (tile_names.length > 0) {
var tile_links = "";
for (let name of tile_names) {
let id = ui_util.makeid();
channel_tile_link_ids.push({
id: id,
name: name
});
let html = `<a href="#" data-tile-name="${name}" draggable="true" id="${id}">${name}</a> `;
tile_links = tile_links + html;
}
tile_html = `<p class="card-text small text-muted mb-0 pb-0"><b>Tiles:</b> ${tile_links}</p>`;
}
var cache_html = "";
if (node.cache_update != 0) {
var updated = new Date();
updated.setTime(Number.parseInt(node.cache_update) * 1000);
cache_html = `<p class="card-text small text-muted mt-0 pt-0"><b>Updated:</b> ${updated.toString()}</p>`;
}
var data = node.data;
// console.log(data);
// $("#search_input").val("");
// $("#nav-data-subtitle").html(node.title);
renderjson.set_icons("+", "-");
renderjson.set_show_to_level(1);
let html = `
<h6 class="card-subtitle mb-2 text-muted" id="${data_div_id}-subtitle">${node.header} <small><a target="_blank" class="mb-2" href="${node.console_link()}">AWS Console</a> <a target="_blank" class="mb-2" href="${node.cloudwatch_link()}">AWS CloudWatch</a></small></h6>
${tile_html}
${diagram_html}
${cache_html}
<p class="card-text small" id="${data_div_id}-text"></p>
`;
// if (empty) {
$("#" + data_div_id).empty();
// }
$("#" + data_div_id).append(html);
var json = renderjson(data);
$("#" + data_div_id + "-text")[0].appendChild(
json
);
// attach click handlers to tile links
for (let link of channel_tile_link_ids) {
let id = link.id;
let eventClosure = (function(local_tile_view, local_link, local_jq) {
var local_view = local_tile_view;
var local_name = local_link.name;
return function(event) {
var tab = local_jq("#channel-tiles-tab");
if (tab.attr("aria-selected") == "false") {
local_jq("#channel-tiles-tab").tab("show");
}
local_view.blink(local_name);
};
})(tile_view, link, $);
$("#" + id).on("click", eventClosure);
}
// attach click handlers to diagram links
for (let item of diagram_link_ids) {
let id = item.id;
let eventClosure = function(local_item) {
var local_diagram = local_item.diagram;
var local_node_id = local_item.node_id;
var local_blinks = blinks;
return function(event) {
local_diagram.network.once("afterDrawing", (function() {
return function() {
local_diagram.network.fit({
nodes: [local_node_id],
animation: true
});
local_diagram.blink(local_blinks, local_node_id);
};
})());
local_diagram.show();
};
}(item);
$("#" + id).on("click", eventClosure);
}
});
// if node is managed instance, alerts and cloudwatch events don't apply
// if medialive channel/multiplex or mediaconnect flow, alerts apply
if (node_ids[0].includes("managed-instance")) {
show_elements([data_div_id, alarms_div_id, data_tab_id, alarms_tab_id]);
hide_elements([alerts_div_id, events_div_id, alerts_tab_id, events_tab_id]);
} else if ((node_ids[0].includes("medialive") && node_ids[0].includes("channel")) || node_ids[0].includes("multiplex") || node_ids[0].includes("mediaconnect")) {
show_elements([data_div_id, alerts_div_id, alarms_div_id, events_div_id, data_tab_id, alarms_tab_id, alerts_tab_id, events_tab_id]);
} else {
show_elements([data_div_id, alarms_div_id, events_div_id, data_tab_id, alarms_tab_id, events_tab_id]);
hide_elements([alerts_div_id, alerts_tab_id]);
}
};