aboutsummaryrefslogtreecommitdiffstats
path: root/web/js
diff options
context:
space:
mode:
authorKristian Lyngstol <kristian@bohemians.org>2016-05-18 18:34:28 +0200
committerKristian Lyngstol <kristian@bohemians.org>2016-05-18 18:34:28 +0200
commit81397bfd9fa54c60a8568812fc0ad99802a4e360 (patch)
tree26da570df1e43dc0304ad7ca88a42da252dcbecf /web/js
parente371b456f6a3872bd691e45ef6f7b52094d811f7 (diff)
Add basic oplog
It still needs to be integrated with switches/info box, but this is a good start. Shows the last 5 log messages in an overlay on the map, with the rest visible in an oplog tab. Fixes #20
Diffstat (limited to 'web/js')
-rw-r--r--web/js/nms-oplog.js65
-rw-r--r--web/js/nms.js2
2 files changed, 67 insertions, 0 deletions
diff --git a/web/js/nms-oplog.js b/web/js/nms-oplog.js
new file mode 100644
index 0000000..91782e7
--- /dev/null
+++ b/web/js/nms-oplog.js
@@ -0,0 +1,65 @@
+"use strict";
+
+var nmsOplog = nmsOplog || {
+
+}
+
+nmsOplog.init = function() {
+ nmsData.addHandler("oplog", "nmsOplogHandler", nmsOplog.updateComments);
+}
+
+nmsOplog.commit = function() {
+ var s = document.getElementById('logbox-id').value;
+ var d = document.getElementById('logbox').value;
+
+ var myData = {"systems": s, "log": d};
+ myData = JSON.stringify(myData);
+ $.ajax({
+ type: "POST",
+ url: "/api/write/oplog",
+ dataType: "text",
+ data:myData,
+ success: function (data, textStatus, jqXHR) {
+ nmsData.invalidate("oplog");
+ }
+ });
+ document.getElementById('logbox-id').value = "";
+ document.getElementById('logbox').value = "";
+
+}
+
+nmsOplog.updateComments = function() {
+ nmsOplog._updateComments(5,"-mini","time");
+ nmsOplog._updateComments(0,"","timestamp");
+}
+nmsOplog._updateComments = function(limit,prefix,timefield) {
+ var table = document.createElement("table");
+ var tr;
+ var td1;
+ var td2;
+ var td3;
+ table.className = "table";
+ table.classList.add("table");
+ table.classList.add("table-condensed");
+ var i = 0;
+ for (var v in nmsData['oplog']['oplog']) {
+ tr = table.insertRow(-1);
+ tr.className =
+ td1 = tr.insertCell(0);
+ td2 = tr.insertCell(1);
+ td3 = tr.insertCell(2);
+ td1.innerHTML = nmsData['oplog']['oplog'][v][timefield];
+ td2.innerHTML = nmsData['oplog']['oplog'][v]['username'];
+ td3.innerHTML = nmsData['oplog']['oplog'][v]['log'];
+ if (++i == limit)
+ break;
+ }
+ try {
+ var old = document.getElementById("oplog-table" + prefix);
+ old.parentElement.removeChild(old);
+ } catch(e) {}
+ var par = document.getElementById("oplog-parent" + prefix);
+ table.id = "oplog-table" + prefix;
+ par.appendChild(table);
+};
+
diff --git a/web/js/nms.js b/web/js/nms.js
index 4092782..8eb1f3d 100644
--- a/web/js/nms.js
+++ b/web/js/nms.js
@@ -612,6 +612,8 @@ function initNMS() {
nmsData.registerSource("snmp","/api/read/snmp");
nmsData.registerSource("comments", "/api/read/comments");
nmsData.registerSource("smanagement","/api/read/switches-management");
+ nmsData.registerSource("oplog", "/api/read/oplog");
+ nmsOplog.init();
}
restoreSettings();