Split out open_hooks, close_hooks; global server status

This commit is contained in:
Tony Garnock-Jones 2012-05-01 10:27:05 -04:00
parent ae86a3e40c
commit 141d5b47a9
8 changed files with 58 additions and 32 deletions

View File

@ -10,18 +10,21 @@
}
</style>
<link rel="stylesheet" type="text/css" href="ui.css">
<script type="text/javascript" src="jquery-1.7.2.min.js"></script><script type="text/javascript" src="jquery.stream-1.2.js"></script><script type="text/javascript" src="ocamlmsg.js"></script><!--[if lt IE 9]>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script><script type="text/javascript" src="jquery.stream-1.2.js"></script><script type="text/javascript" src="ocamlmsg.js"></script><script type="text/javascript" src="global.js"></script><!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]
-->
</head>
<body>
<div class="navbar navbar-fixed-top"><div class="navbar-inner"><div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></a><a class="brand" href="http://github.com/tonyg/ocamlmsg/">Ocamlmsg</a><div class="nav-collapse"><ul class="nav">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></a><a class="brand" href="http://github.com/tonyg/ocamlmsg/">Ocamlmsg</a><div class="nav-collapse">
<ul class="nav">
<li class="btn-danger"><a href="about.html">About</a></li>
<li><a href="/">Main</a></li>
<li><a href="/nodes.html">Nodes</a></li>
</ul></div>
</ul>
<ul class="nav pull-right"><li><a id="server_status_message_container"><span id="server_status_message">Connected</span></a></li></ul>
</div>
</div></div></div>
<div class="container"><body>

View File

@ -21,6 +21,7 @@
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="jquery.stream-1.2.js"></script>
<script type="text/javascript" src="ocamlmsg.js"></script>
<script type="text/javascript" src="global.js"></script>
<xsl:for-each select="load">
<script type="text/javascript" src="{text()}"></script>
</xsl:for-each>
@ -51,6 +52,9 @@
</li>
</xsl:for-each>
</ul>
<ul class="nav pull-right">
<li><a id="server_status_message_container"><span id="server_status_message">Connected</span></a></li>
</ul>
</div>
</div>
</div>

View File

@ -8,10 +8,6 @@
<body>
<h2>Server statistics</h2>
<table class="table">
<tr>
<th class="span6">Server Status</th>
<td class="span6" id="server_ok">OK</td>
</tr>
<tr>
<th class="span6">Connection count</th>
<td class="span6" id="server_stats_connection_count"></td>

14
web/global.js Normal file
View File

@ -0,0 +1,14 @@
(function () {
function server_disconnected() {
$("#server_status_message_container")[0].className = "btn-danger";
$("#server_status_message").text("Disconnected");
}
function server_connected() {
$("#server_status_message_container")[0].className = "";
$("#server_status_message").text("Connected");
}
Ocamlmsg.$open_hooks.push(server_connected);
Ocamlmsg.$close_hooks.push(server_disconnected);
})();

View File

@ -10,26 +10,25 @@
}
</style>
<link rel="stylesheet" type="text/css" href="ui.css">
<script type="text/javascript" src="jquery-1.7.2.min.js"></script><script type="text/javascript" src="jquery.stream-1.2.js"></script><script type="text/javascript" src="ocamlmsg.js"></script><script type="text/javascript" src="index.js"></script><!--[if lt IE 9]>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script><script type="text/javascript" src="jquery.stream-1.2.js"></script><script type="text/javascript" src="ocamlmsg.js"></script><script type="text/javascript" src="global.js"></script><script type="text/javascript" src="index.js"></script><!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]
-->
</head>
<body>
<div class="navbar navbar-fixed-top"><div class="navbar-inner"><div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></a><a class="brand" href="http://github.com/tonyg/ocamlmsg/">Ocamlmsg</a><div class="nav-collapse"><ul class="nav">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></a><a class="brand" href="http://github.com/tonyg/ocamlmsg/">Ocamlmsg</a><div class="nav-collapse">
<ul class="nav">
<li class="btn-danger"><a href="about.html">About</a></li>
<li class="active"><a href="/">Main</a></li>
<li><a href="/nodes.html">Nodes</a></li>
</ul></div>
</ul>
<ul class="nav pull-right"><li><a id="server_status_message_container"><span id="server_status_message">Connected</span></a></li></ul>
</div>
</div></div></div>
<div class="container"><body>
<h2>Server statistics</h2>
<table class="table">
<tr>
<th class="span6">Server Status</th>
<td class="span6" id="server_ok">OK</td>
</tr>
<tr>
<th class="span6">Connection count</th>
<td class="span6" id="server_stats_connection_count"></td>

View File

@ -1,6 +1,4 @@
function server_disconnected() {
$("#server_ok")[0].className = "btn-danger";
$("#server_ok").text("Disconnected");
$("#server_stats_connection_count").text("—");
$("#server_stats_boot_time").text("—");
$("#server_stats_uptime").text("—");
@ -9,8 +7,6 @@ function server_disconnected() {
function refresh_server_stats() {
$.getJSON("/_/server_stats", function (data) {
$("#server_ok")[0].className = "btn-success";
$("#server_ok").text("OK");
$("#server_stats_connection_count").text(data.connection_count);
$("#server_stats_boot_time").text(new Date(data.boot_time * 1000));
$("#server_stats_uptime").text(data.uptime);
@ -30,17 +26,17 @@ function ui_main() {
refresh_server_stats();
setInterval(refresh_server_stats, 5000);
Ocamlmsg.$open_hooks.push(function (event, stream) {
refresh_server_stats();
Ocamlmsg.post(stream.id, {"test":true});
Ocamlmsg.create("fanout", ["system.log"], "completion1");
Ocamlmsg.subscribe("meta", "system.log", "sub_messages", "completion2");
Ocamlmsg.subscribe("system.log", "", "log_messages", "completion3");
});
Ocamlmsg.$close_hooks.push(server_disconnected);
Ocamlmsg.install_tap({
open: function (event, stream) {
refresh_server_stats();
Ocamlmsg.post(stream.id, {"test":true});
Ocamlmsg.create("fanout", ["system.log"], "completion1");
Ocamlmsg.subscribe("meta", "system.log", "sub_messages", "completion2");
Ocamlmsg.subscribe("system.log", "", "log_messages", "completion3");
},
message: function (event, stream) {
$("#debug_container").append(JSON.stringify(event.data) + "\n");
},
close: server_disconnected
});
}

View File

@ -10,18 +10,21 @@
}
</style>
<link rel="stylesheet" type="text/css" href="ui.css">
<script type="text/javascript" src="jquery-1.7.2.min.js"></script><script type="text/javascript" src="jquery.stream-1.2.js"></script><script type="text/javascript" src="ocamlmsg.js"></script><script type="text/javascript" src="nodes.js"></script><!--[if lt IE 9]>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script><script type="text/javascript" src="jquery.stream-1.2.js"></script><script type="text/javascript" src="ocamlmsg.js"></script><script type="text/javascript" src="global.js"></script><script type="text/javascript" src="nodes.js"></script><!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]
-->
</head>
<body>
<div class="navbar navbar-fixed-top"><div class="navbar-inner"><div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></a><a class="brand" href="http://github.com/tonyg/ocamlmsg/">Ocamlmsg</a><div class="nav-collapse"><ul class="nav">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></a><a class="brand" href="http://github.com/tonyg/ocamlmsg/">Ocamlmsg</a><div class="nav-collapse">
<ul class="nav">
<li class="btn-danger"><a href="about.html">About</a></li>
<li><a href="/">Main</a></li>
<li class="active"><a href="/nodes.html">Nodes</a></li>
</ul></div>
</ul>
<ul class="nav pull-right"><li><a id="server_status_message_container"><span id="server_status_message">Connected</span></a></li></ul>
</div>
</div></div></div>
<div class="container"><body>
<h2>Nodes</h2>

View File

@ -2,6 +2,17 @@ var Ocamlmsg = {
$tap: null,
$args: null,
$open_hooks: [],
$close_hooks: [],
run_open_hooks: function (event, stream) {
$.each(Ocamlmsg.$open_hooks, function (i, f) { f(event, stream); });
},
run_close_hooks: function (event, stream) {
$.each(Ocamlmsg.$close_hooks, function (i, f) { f(event, stream); });
},
_send: function (msg) {
Ocamlmsg.$tap.send({data: JSON.stringify(msg)});
},
@ -63,10 +74,10 @@ var Ocamlmsg = {
dataType: "json",
enableXDR: true,
open: args.open,
open: Ocamlmsg.run_open_hooks,
message: args.message,
error: args.close,
close: args.close
error: Ocamlmsg.run_close_hooks,
close: Ocamlmsg.run_close_hooks
});
},