aboutsummaryrefslogtreecommitdiffstats
path: root/web/nms.gathering.org/nms2/index.html
blob: acfe81079a5abd7d149faf1e9559358836a7cadb (plain)
1
/*
 * jQuery hashchange event - v1.3 - 7/21/2010
 * http://benalman.com/projects/jquery-hashchange-plugin/
 * 
 * Copyright (c) 2010 "Cowboy" Ben Alman
 * Dual licensed under
<!DOCTYPE html>

<html lang="en">
<head>
    <meta name="generator" content="HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
    <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
    <meta charset="utf-8">

    <title>NMS2</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">
    <script src="js/jquery-1.10.2.min.js" type="text/javascript">
    </script><!--<script src="http://cdn.jsdelivr.net/qtip2/2.2.1/jquery.qtip.min.js"></script>-->
    <link href="css/bootstrap.min.css" rel="stylesheet" type="text/css">
    <link href="css/bootstrap-responsive.min.css" rel="stylesheet" type="text/css">
    <link href="css/slider.css" rel="stylesheet" type="text/css">
    <link rel="stylesheet" href="css/ping.css" type="text/css"><!--<link src="http://cdn.jsdelivr.net/qtip2/2.2.1/jquery.qtip.min.css" rel="stylesheet">-->

    <style type="text/css">
                    body {
                                padding-top: 60px;
                                padding-bottom: 40px;
                        }
                        .sidebar-nav {
                                padding: 9px 0;
                        }

    </style>
</head>

<body id="body">
    <div class="navbar navbar-inverse navbar-fixed-top">
        <div class="navbar-inner">
            <div class="container-fluid">
                <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"></a>
                <div class="nav-collapse collapse">
                    <p class="navbar-text pull-right" id="speed" title="Client port speed"></p>
                    <ul class="navbar nav">
                        <li class="dropdown">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Map mode<span class="caret"></span></a>
                            <ul class="dropdown-menu" role="menu">
                                <li><a href="#uplink" onclick="setUpdater(handler_uplinks)">Uplink map</a></li>
                                <li><a href="#temp" onclick="setUpdater(handler_temp)">Temperature map</a></li>
                                <li><a href="#ping" onclick="setUpdater(handler_ping)">Ping map</a></li>
                                <li><a href="#traffic" onclick="setUpdater(handler_traffic)">Traffic map</a></li>
                                <li><a href="#disco" onclick="setUpdater(handler_disco)">DISCO</a></li>
				<li class="divider"> </li>
                                <li><a href="#" onclick="toggleNightMode()" title="Add 'nightMode' anywhere in the url to auto-enable">Toggle Night Mode</a></li>
				<li class="divider"> </li>
				<li><a href="#" onclick="document.getElementById('nowPickerBox').style.display = 'block';">Travel in time</a></li>
				<li><a href="#" onclick="startReplay();" title="Replay from opening 30 minutes per second">Replay TG</p></li>
				<li class="divider"> </li>
				<li><input type="range" id="scaler" name="points" min="0.5" max="3" step="0.01" onchange="scaleChange()" /></li>
				<li><a href="#">Scale: <div id="scaler-text"></div></a></li>
				<li class="divider"> </li>
	    			<li><a onclick="document.getElementById('aboutBox').style.display = 'block';">About</a></li>
			    </ul>
                        </li>
                    </ul>
                    <p id="updater_name" class="navbar-text"></p>
                </div><!--/.nav-collapse -->
            </div>
        </div>
    </div>

    <div class="container-fluid">
        <div class="panel" style="position: fixed; z-index: 100;">
            <div class="span4">
	    	<div id="nowPickerBox" style="display:none; background:
		white; border: 1px solid #000000;" >	
		      <input type="text" class="form-control" placeholder="YYYY-MM-DD hh:mm:ss" id="nowPicker" value="" />
		      <button class="btn btn-default" onclick="changeNow();">Travel</button>
	        </div>
                <div id="info-switch-parent" style="background: silver">
                    <table class="table" id="info-switch-table"></table>
                </div>
            </div>
        </div><!--/row-->

        <div class="row-fluid">
            <div class="span12">
	    <div id="aboutBox" class="panel" style="display: none; background: white; position: fixed; border: 1px solid #000000; z-index: 10;">
	    <button onclick="document.getElementById('aboutBox').style.display = 'none';" style="float: right;">X</button>
	    <h1>Welcome to NMS</h1>
	    <h3>Cool stuff:</h3>
	    <ul>
	    <li>Everything is always there (but the frontend is a bit
	    sluggish atm).</li>
	    <li>Click a switch for more info</li>
	    <li>Rewind: You can check out state at a specific time or
	    replay from the beginning of the event</li>
	    <li>Night mode, now with blur.</li>
	    <li>Auto-scaling the viewport/canvas</li>
	    <li>Total client speed (up right)</li>
	    <li>An about-page that's full of bullet points!</li>
	    </ul>
	    <h3>Todo list front end:</h3>
	    <ul>
	    <li>Fill out this list and text</li>
	    <li>Polish time travel UI</li>
	    <li>Lock scale</li>
	    <li>Clean up various global variables</li>
	    <li>Split drawing into multiple canvases to fix Firefox
	    performance (And because it's generally better)</li>
	    <li>Add DHCP map</li>
	    <li>Add magic map (combined map of sorts)</li>
	    <li>Upgrade jQuery and Boost</li>
	    <li>Fix legend display</li>
	    <li>Better dialog-boxes (Both this and various others)</li>
	    <li>Add switch-box to review state on individual ports</li>
	    <li>Moving switches around (like ping.html + edit)</li>
	    <li>More?</li>
	    </ul>
	    <h3>Todo for backend:</h3>
	    <li>Fix horrible SQL :D</li>
	    <li>Close SQL injections (IT'S WIDE OPEN BECAUSE WHY NOT THAT'S NEVER A PROBLEM)</li>
	    <li>Fix SNMP-fetcher so it gets ifXTable and at least ifOperStatus from ifTable. Possibly other tweaks.</li>
	    <li>Support for adding switches through an API, not just pure SQL.</li>
	    <li>Integrate with FAP</li>
	    <li>Clean up old interfaces</li>
	    <li>Review various agents/tools</li>
	    </ul>

	    </div>
<canvas id="myCanvas" width="1920" height="1032" style="cursor: pointer;" onclick="canvasClick(event)">
</canvas>

<div style="display:none;"><img id="source" src="prototype/tg15-salkart-full.png" ></div>
            </div>
        </div>

        <div class="row-fluid">
            <div class="span12">
                <div id="info-legend-box">
                    <button id="legend-1"></button> <button id="legend-2"></button> <button id="legend-3"></button> <button id="legend-4"></button> <button id="legend-5"></button>
                </div>
            </div>
        </div>
    </div><!--/.fluid-container-->
    <script src="js/bootstrap.min.js" type="text/javascript"></script>
    <script type="text/javascript">
      var draw_linknets = true;
      var can_edit = false;
    </script>
    <script type="text/javascript" src="js/nms.js"></script>
    <script type="text/javascript">
    updatePorts();
    updatePing();
	window.addEventListener('resize',resizeEvent,true);
	document.addEventListener('load',resizeEvent,true);
    setInterval(updatePorts,5000);
    setInterval(updateInfo,5000);
    setInterval(updatePing,1000);
    setInterval(updateMap,1000);
    setInterval(updateSpeed,3000);
    setInterval(drawScene,1000);
    url = document.URL;
    if (/#ping/.exec(url)) {
            setUpdater(handler_ping);
    }else if (/#uplink/.exec(url)) {
            setUpdater(handler_uplinks);
    } else if (/#temp/.exec(url)) {
            setUpdater(handler_temp);
    } else if (/#traffic/.exec(url)) {
            setUpdater(handler_traffic);
    } else if (/#disco/.exec(url)) {
            setUpdater(handler_disco);
    } else {
            setUpdater(handler_ping);
    }
    if (/nightMode/.exec(url)) {
            toggleNightMode();
    }
    </script>
</body>
</html>