aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolai Tellefsen <niccofyren@gmail.com>2016-03-26 01:50:58 +0100
committerNicolai Tellefsen <niccofyren@gmail.com>2016-03-26 01:50:58 +0100
commit7b39120d069223c5e2cf135f0e89df9a13ded17b (patch)
tree339d9c029ae60a1a6e6f726dc75f9f383459210e
parent14dbbc1451b4d5ea99e1937020e4fc79fe7ba1a7 (diff)
NMS: Add basic formating to SNMP-data in infobox
-rw-r--r--web/nms.gathering.org/js/nms-info-box.js61
1 files changed, 50 insertions, 11 deletions
diff --git a/web/nms.gathering.org/js/nms-info-box.js b/web/nms.gathering.org/js/nms-info-box.js
index a718f78..1728d81 100644
--- a/web/nms.gathering.org/js/nms-info-box.js
+++ b/web/nms.gathering.org/js/nms-info-box.js
@@ -88,6 +88,9 @@ nmsInfoBox._show = function(argument) {
this._container.appendChild(panel);
this._container.style.display = "block";
$('[data-toggle="popover"]').popover({placement:"top",container:'body'});
+ $(".collapse-controller").on("click", function(e) {
+ $(e.target.dataset.target).collapse('toggle');
+ });
};
/*
@@ -325,19 +328,55 @@ nmsInfoBox._windowTypes.switchInfo = {
showSNMP: function(tree) {
this.activeView = "snmp";
var domObj = document.createElement("div");
+ domObj.classList.add("panel-group");
- var output = document.createElement("output");
- output.id = "edit-output";
- output.style = "white-space: pre;";
- try {
- output.value = JSON.stringify(nmsData.snmp.snmp[this.sw][tree],null,4);
- } catch(e) {
- output.value = "(no recent data (yet)?)";
- }
- domObj.appendChild(output);
+ try {
+ var snmpJson = nmsData.snmp.snmp[this.sw][tree];
+ } catch(e) {
+ this.content = "(no recent data (yet)?)";
+ return;
+ }
- this.childContent = domObj;
- nmsInfoBox.refresh();
+ /*
+ * This html-generation code seems unnecessary complex. Must be a
+ * cleaner way to do this. But not today.
+ */
+ for(var obj in snmpJson) {
+
+ var cleanObj = obj.replace(/\W+/g, "");
+
+ var groupObj = document.createElement("div");
+ groupObj.classList.add("panel","panel-default");
+ groupObj.innerHTML = '<a class="panel-heading collapse-controller" style="display:block;" role="button" data-toggle="collapse" href="#'+cleanObj+'-group">' + obj + '</a>';
+
+ var groupObjCollapse = document.createElement("div");
+ groupObjCollapse.id = cleanObj + "-group";
+ groupObjCollapse.classList.add("collapse");
+
+ var panelBodyObj = document.createElement("div");
+ panelBodyObj.classList.add("panel-body");
+
+ var tableObj = document.createElement("table");
+ tableObj.classList.add("table","table-condensed");
+
+ var tbody = document.createElement("tbody");
+
+ for(var prop in snmpJson[obj]) {
+ var propObj = document.createElement("tr");
+ propObj.innerHTML = '<td>' + prop + '</td><td>' + snmpJson[obj][prop] + '</td>';
+ tbody.appendChild(propObj);
+ }
+
+ tableObj.appendChild(tbody);
+ panelBodyObj.appendChild(tableObj);
+ groupObjCollapse.appendChild(panelBodyObj);
+ groupObj.appendChild(groupObjCollapse);
+ domObj.appendChild(groupObj);
+
+ }
+ this.content = domObj;
+
+ nmsInfoBox.refresh("soft");
},
unload: function() {
this.title = '';