diff options
| author | Nicolai Tellefsen <niccofyren@gmail.com> | 2016-03-26 01:50:58 +0100 | 
|---|---|---|
| committer | Nicolai Tellefsen <niccofyren@gmail.com> | 2016-03-26 01:50:58 +0100 | 
| commit | 7b39120d069223c5e2cf135f0e89df9a13ded17b (patch) | |
| tree | 339d9c029ae60a1a6e6f726dc75f9f383459210e /web | |
| parent | 14dbbc1451b4d5ea99e1937020e4fc79fe7ba1a7 (diff) | |
NMS: Add basic formating to SNMP-data in infobox
Diffstat (limited to 'web')
| -rw-r--r-- | web/nms.gathering.org/js/nms-info-box.js | 61 | 
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 = '';  | 
