hopglass/lib/infobox/link.js

50 lines
1.8 KiB
JavaScript
Raw Normal View History

2015-03-25 11:21:09 +01:00
define(function () {
function showStatImg(o, d) {
var subst = {};
subst["{SOURCE}"] = d.source.node_id;
subst["{SOURCE_NAME}"] = d.source.node.nodeinfo.hostname ? d.source.node.nodeinfo.hostname : "unknown";
subst["{TARGET}"] = d.target.node_id;
subst["{TARGET_NAME}"] = d.target.node.nodeinfo.hostname ? d.target.node.nodeinfo.hostname : "unknown";
return showStat(o, subst);
2016-03-08 20:01:38 +01:00
}
2015-03-25 19:45:21 +01:00
return function (config, el, router, d) {
var unknown = !(d.source.node);
var h2 = document.createElement("h2");
var a1 = document.createElement("a");
if (!unknown) {
a1.href = "#";
a1.onclick = router.node(d.source.node);
}
a1.textContent = unknown ? d.source.id : d.source.node.nodeinfo.hostname;
h2.appendChild(a1);
h2.appendChild(document.createTextNode(" → "));
var a2 = document.createElement("a");
a2.href = "#";
a2.onclick = router.node(d.target.node);
a2.textContent = d.target.node.nodeinfo.hostname;
h2.appendChild(a2);
el.appendChild(h2);
2015-03-25 11:21:09 +01:00
var attributes = document.createElement("table");
attributes.classList.add("attributes");
2015-03-25 11:21:09 +01:00
attributeEntry(attributes, "TQ", showTq(d));
attributeEntry(attributes, "Entfernung", showDistance(d));
attributeEntry(attributes, "Typ", d.type);
var hw1 = unknown ? null : dictGet(d.source.node.nodeinfo, ["hardware", "model"]);
var hw2 = dictGet(d.target.node.nodeinfo, ["hardware", "model"]);
attributeEntry(attributes, "Hardware", (hw1 != null ? hw1 : "unbekannt") + " " + (hw2 != null ? hw2 : "unbekannt"));
el.appendChild(attributes);
2016-03-08 20:01:38 +01:00
if (config.linkInfos) {
config.linkInfos.forEach(function (linkInfo) {
var h4 = document.createElement("h4");
h4.textContent = linkInfo.name;
el.appendChild(h4);
el.appendChild(showStatImg(linkInfo, d));
});
}
};
});