aboutsummaryrefslogtreecommitdiffstats
path: root/web/nms.gathering.org/old/ping.js
diff options
context:
space:
mode:
authorKristian Lyngstol <kly@kly@.no>2016-03-26 03:48:32 +0100
committerKristian Lyngstol <kly@kly@.no>2016-03-26 03:48:32 +0100
commitcda4d1235486dc74c5d3630fc5e85307f277c5f3 (patch)
tree0e59890e8afcf09024079d0e3a596e16b63250af /web/nms.gathering.org/old/ping.js
parent004f4efcfd0779f4307b90fed139dc87d01ad0b9 (diff)
parenta791ca16c787672ea534dbde39f926d0341aa2e6 (diff)
Merge branch 'master' of github.com:tech-server/tgmanage
Diffstat (limited to 'web/nms.gathering.org/old/ping.js')
-rw-r--r--web/nms.gathering.org/old/ping.js238
1 files changed, 0 insertions, 238 deletions
diff --git a/web/nms.gathering.org/old/ping.js b/web/nms.gathering.org/old/ping.js
deleted file mode 100644
index 7c5de57..0000000
--- a/web/nms.gathering.org/old/ping.js
+++ /dev/null
@@ -1,238 +0,0 @@
-var switches = [];
-var linknets = [];
-var last_dataset = [];
-get_switches();
-get_ping();
-
-function json_request(url, func, repeat_ms) {
- var request = new XMLHttpRequest();
- request.open('GET', url, true);
-
- request.onload = function() {
- if (this.status >= 200 && this.status < 400) {
- func(JSON.parse(this.response));
- } else if (this.status != 410) {
- json_request(url, func, repeat_ms);
- }
- };
- request.onerror = function() {
- json_request(url, func, repeat_ms);
- };
- request.send();
-}
-
-function get_switches() {
- json_request(switches_url, draw_switches, 1000);
-}
-
-function get_ping() {
- json_request(ping_url, update_ping, 1000);
-}
-
-function draw_switches(json) {
- for (var switchnum in switches) {
- document.body.removeChild(switches[switchnum]);
- }
- switches = [];
- var lines = document.getElementById("lines");
- for (var linknetnum in linknets) {
- lines.removeChild(linknets[linknetnum][0]);
- lines.removeChild(linknets[linknetnum][1]);
- lines.removeChild(linknets[linknetnum][2]);
- }
- linknets = [];
-
- for (var switchnum in json['switches']) {
- var s = json['switches'][switchnum];
- create_switch(switchnum,
- s['sysname'],
- parseInt(s['x']),
- parseInt(s['y']),
- parseInt(s['zorder']),
- parseInt(s['width']),
- parseInt(s['height']));
- }
-
- if (draw_linknets) {
- for (var i = 0; i < json['linknets'].length; ++i) {
- var linknet = json['linknets'][i];
- create_linknet(linknet['linknet'], linknet['switch1'], linknet['switch2']);
- }
- }
-
- setTimeout(get_switches, 60000);
- really_update_ping(last_dataset);
-}
-
-function create_linknet(linknetnum, switch1, switch2) {
- var s1 = switches[switch1];
- var s2 = switches[switch2];
- var s1x = parseInt(s1.style.left.replace("px", "")) + 0.5 * parseInt(s1.style.width.replace("px", ""));
- var s1y = parseInt(s1.style.top.replace("px", "")) + 0.5 * parseInt(s1.style.height.replace("px", ""));
- var s2x = parseInt(s2.style.left.replace("px", "")) + 0.5 * parseInt(s2.style.width.replace("px", ""));
- var s2y = parseInt(s2.style.top.replace("px", "")) + 0.5 * parseInt(s2.style.height.replace("px", ""));
-
- var midx = 0.5 * (s1x + s2x);
- var midy = 0.5 * (s1y + s2y);
-
- var outline = document.createElementNS("http://www.w3.org/2000/svg", "line");
- outline.setAttribute("x1", s1x);
- outline.setAttribute("y1", s1y);
- outline.setAttribute("x2", s2x);
- outline.setAttribute("y2", s2y);
- outline.style.stroke = "rgb(0, 0, 0)";
- outline.style.strokeWidth = 4;
- document.getElementById("lines").appendChild(outline);
-
- var line1 = document.createElementNS("http://www.w3.org/2000/svg", "line");
- line1.setAttribute("x1", s1x);
- line1.setAttribute("y1", s1y);
- line1.setAttribute("x2", midx);
- line1.setAttribute("y2", midy);
- line1.style.stroke = "rgb(0, 0, 255)";
- line1.style.strokeWidth = 3;
- document.getElementById("lines").appendChild(line1);
-
- var line2 = document.createElementNS("http://www.w3.org/2000/svg", "line");
- line2.setAttribute("x1", midx);
- line2.setAttribute("y1", midy);
- line2.setAttribute("x2", s2x);
- line2.setAttribute("y2", s2y);
- line2.style.stroke = "rgb(0, 0, 255)";
- line2.style.strokeWidth = 3;
- document.getElementById("lines").appendChild(line2);
-
- linknets[linknetnum] = [ line1, line2, outline ];
-}
-
-function update_ping(json) {
- last_dataset = json;
- really_update_ping(json);
- setTimeout(get_ping, 1000);
-}
-
-function gradient_from_latency(latency_ms, latency_secondary_ms) {
- if (latency_secondary_ms === undefined) {
- return rgb_from_latency(latency_ms);
- }
- return 'linear-gradient(' +
- rgb_from_latency(latency_ms) + ', ' +
- rgb_from_latency(latency_secondary_ms) + ')';
-}
-
-function rgb_from_latency(latency_ms) {
- if (latency_ms === null || latency_ms === undefined) {
- return '#0000ff';
- }
-
- // 10ms is max
- var l = latency_ms / 50.0;
- if (l >= 2.0) {
- return 'rgb(255, 0, 0)';
- } else if (l >= 1.0) {
- l = 2.0 - l;
- l = Math.pow(l, 1.0/2.2);
- l = Math.round(l * 255.0);
- return 'rgb(255, ' + l + ', 0)';
- } else {
- l = Math.pow(l, 1.0/2.2);
- l = Math.round(l * 255.0);
- return 'rgb(' + l + ', 255, 0)';
- }
-}
-
-function really_update_ping(json) {
- if (json['switches']) {
- for (var switchnum in switches) {
- if (json['switches'][switchnum]) {
- if (json['switches'][switchnum]['color']) {
- switches[switchnum].style.background = json['switches'][switchnum]['color'];
- } else {
- switches[switchnum].style.background =
- gradient_from_latency(json['switches'][switchnum]['latency'],
- json['switches'][switchnum]['latency_secondary']);
- }
- } else {
- switches[switchnum].style.background = '#0000ff';
- }
- }
- }
- if (json['linknets']) {
- for (var linknetnum in linknets) {
- linknets[linknetnum][0].style.stroke = rgb_from_latency(json['linknets'][linknetnum][0]);
- linknets[linknetnum][1].style.stroke = rgb_from_latency(json['linknets'][linknetnum][1]);
- }
- }
-}
-
-function create_switch(switchnum, sysname, x, y, zorder, width, height) {
- var s = document.createElement("div");
- var map = document.getElementById('map');
- var top_offset = map.getBoundingClientRect().top;
- var left_offset = map.getBoundingClientRect().left;
-
- s.style.position = 'absolute';
- s.style.left = (left_offset + x) + 'px';
- s.style.top = (top_offset + y) + 'px';
- s.style.width = width + 'px';
- s.style.height = height + 'px';
- s.style.backgroundColor = '#0000ff';
- s.style.border = '1px solid black';
- s.style.padding = "0";
- s.style.zIndex = zorder + 100;
- switches[switchnum] = s;
-
- var span = document.createElement("div");
- span.className = "switchname";
- if (width < 1.5 * height) {
- span.className = "switchname rot";
- }
- span.style.border = "0";
- span.style.padding = "0";
- s.appendChild(span);
-
- var text = document.createTextNode(sysname);
- span.appendChild(text);
-
- s.setAttribute("data-switchnum", switchnum);
-
- document.body.appendChild(s);
-}
-
-var dragging_switch = null;
-var delta_x = null, delta_y = null;
-
-if (can_edit) {
- document.onmousedown = function(e) {
- var switchnum = e.target.getAttribute("data-switchnum");
- if (switchnum === null) {
- return;
- }
- dragging_switch = switchnum;
- delta_x = parseInt(e.target.style.left.replace("px", "")) - e.clientX;
- delta_y = parseInt(e.target.style.top.replace("px", "")) - e.clientY;
- }
-
- document.onmousemove = function(e) {
- if (dragging_switch === null) {
- return;
- }
- switches[dragging_switch].style.left = (e.clientX + delta_x) + 'px';
- switches[dragging_switch].style.top = (e.clientY + delta_y) + 'px';
- }
-
- document.onmouseup = function(e) {
- if (dragging_switch === null) {
- return;
- }
- var x = e.clientX + delta_x - map.getBoundingClientRect().top;
- var y = e.clientY + delta_y - map.getBoundingClientRect().left;
-
- var request = new XMLHttpRequest();
- request.open('POST', '/change-switch-pos.pl', true);
- request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
- request.send("switch=" + dragging_switch + "&x=" + x + "&y=" + y);
-
- dragging_switch = null;
- }
-}