Factor out ocamlmsg.js
This commit is contained in:
parent
bb12066819
commit
b5dd7e445e
|
@ -10,7 +10,7 @@
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<link rel="stylesheet" type="text/css" href="ui.css">
|
<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="ui_main.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><!--[if lt IE 9]>
|
||||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||||
<![endif]
|
<![endif]
|
||||||
-->
|
-->
|
||||||
|
|
|
@ -20,7 +20,10 @@
|
||||||
<link rel="stylesheet" type="text/css" href="ui.css" />
|
<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-1.7.2.min.js"></script>
|
||||||
<script type="text/javascript" src="jquery.stream-1.2.js"></script>
|
<script type="text/javascript" src="jquery.stream-1.2.js"></script>
|
||||||
<script type="text/javascript" src="ui_main.js"></script>
|
<script type="text/javascript" src="ocamlmsg.js"></script>
|
||||||
|
<xsl:for-each select="load">
|
||||||
|
<script type="text/javascript" src="{text()}"></script>
|
||||||
|
</xsl:for-each>
|
||||||
<xsl:comment>[if lt IE 9]<xsl:text disable-output-escaping="yes">>
|
<xsl:comment>[if lt IE 9]<xsl:text disable-output-escaping="yes">>
|
||||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||||
<!</xsl:text>[endif]
|
<!</xsl:text>[endif]
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
<page>
|
<page>
|
||||||
<title>Ocamlmsg</title>
|
<title>Ocamlmsg</title>
|
||||||
<section>main</section>
|
<section>main</section>
|
||||||
|
|
||||||
|
<load>index.js</load>
|
||||||
|
<script>$(document).ready(ui_main);</script>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<h2>Server statistics</h2>
|
<h2>Server statistics</h2>
|
||||||
<table class="table">
|
<table class="table">
|
||||||
|
@ -28,6 +32,4 @@
|
||||||
<h2>Debug</h2>
|
<h2>Debug</h2>
|
||||||
<pre id="debug_container"></pre>
|
<pre id="debug_container"></pre>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
<script>$(document).ready(ui_main);</script>
|
|
||||||
</page>
|
</page>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<link rel="stylesheet" type="text/css" href="ui.css">
|
<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="ui_main.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="index.js"></script><!--[if lt IE 9]>
|
||||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||||
<![endif]
|
<![endif]
|
||||||
-->
|
-->
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
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("—");
|
||||||
|
$("#server_classes").text("—");
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
$("#server_classes").text(data.classes.join(", "));
|
||||||
|
switch (Ocamlmsg.$tap.readyState) {
|
||||||
|
case 0: // connecting
|
||||||
|
case 1: // open
|
||||||
|
case 2: // closing
|
||||||
|
break;
|
||||||
|
case 3: // closed
|
||||||
|
Ocamlmsg.force_reinstall();
|
||||||
|
}
|
||||||
|
}).error(server_disconnected);
|
||||||
|
}
|
||||||
|
|
||||||
|
function ui_main() {
|
||||||
|
refresh_server_stats();
|
||||||
|
setInterval(refresh_server_stats, 5000);
|
||||||
|
|
||||||
|
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
|
||||||
|
});
|
||||||
|
}
|
|
@ -0,0 +1,76 @@
|
||||||
|
var Ocamlmsg = {
|
||||||
|
$tap: null,
|
||||||
|
$args: null,
|
||||||
|
|
||||||
|
_send: function (msg) {
|
||||||
|
Ocamlmsg.$tap.send({data: JSON.stringify(msg)});
|
||||||
|
},
|
||||||
|
|
||||||
|
_post_msg: function (target, datum, token) {
|
||||||
|
return ["post", target, datum, token || ""];
|
||||||
|
},
|
||||||
|
|
||||||
|
post: function (target, datum, token) {
|
||||||
|
Ocamlmsg._send(Ocamlmsg._post_msg(target, datum, token));
|
||||||
|
},
|
||||||
|
|
||||||
|
_subscribe_msg: function (filter, sink, name, reply_sink, reply_name) {
|
||||||
|
return ["subscribe", filter, sink, name, reply_sink || "", reply_name || ""];
|
||||||
|
},
|
||||||
|
|
||||||
|
_subscribe: function (source, filter, name, reply_name) {
|
||||||
|
return Ocamlmsg._post_msg(source,
|
||||||
|
Ocamlmsg._subscribe_msg(filter, Ocamlmsg.$tap.id, name,
|
||||||
|
reply_name ? Ocamlmsg.$tap.id : "",
|
||||||
|
reply_name));
|
||||||
|
},
|
||||||
|
|
||||||
|
subscribe: function (source, filter, name, reply_name) {
|
||||||
|
Ocamlmsg._send(Ocamlmsg._subscribe(source, filter, name, reply_name));
|
||||||
|
},
|
||||||
|
|
||||||
|
_unsubscribe_msg: function (token) {
|
||||||
|
return ["unsubscribe", token];
|
||||||
|
},
|
||||||
|
|
||||||
|
_unsubscribe: function (source, token) {
|
||||||
|
return Ocamlmsg._post_msg(source, Ocamlmsg._unsubscribe_msg(token));
|
||||||
|
},
|
||||||
|
|
||||||
|
unsubscribe: function (source, token) {
|
||||||
|
Ocamlmsg._send(Ocamlmsg._unsubscribe(source, token));
|
||||||
|
},
|
||||||
|
|
||||||
|
_create_msg: function (classname, arg, reply_sink, reply_name) {
|
||||||
|
return ["create", classname, arg, reply_sink || "", reply_name || ""];
|
||||||
|
},
|
||||||
|
|
||||||
|
_create: function (classname, arg, reply_name, factory) {
|
||||||
|
return Ocamlmsg._post_msg(factory || "factory",
|
||||||
|
Ocamlmsg._create_msg(classname, arg,
|
||||||
|
reply_name ? Ocamlmsg.$tap.id : "",
|
||||||
|
reply_name));
|
||||||
|
},
|
||||||
|
|
||||||
|
create: function (classname, arg, reply_name, factory) {
|
||||||
|
Ocamlmsg._send(Ocamlmsg._create(classname, arg, reply_name, factory));
|
||||||
|
},
|
||||||
|
|
||||||
|
install_tap: function (args) {
|
||||||
|
Ocamlmsg.$args = args;
|
||||||
|
Ocamlmsg.$tap = $.stream("/_/tap", {
|
||||||
|
type: "http",
|
||||||
|
dataType: "json",
|
||||||
|
enableXDR: true,
|
||||||
|
|
||||||
|
open: args.open,
|
||||||
|
message: args.message,
|
||||||
|
error: args.close,
|
||||||
|
close: args.close
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
force_reinstall: function () {
|
||||||
|
Ocamlmsg.install_tap(Ocamlmsg.$args);
|
||||||
|
}
|
||||||
|
}
|
113
web/ui_main.js
113
web/ui_main.js
|
@ -1,113 +0,0 @@
|
||||||
var $tap;
|
|
||||||
|
|
||||||
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("—");
|
|
||||||
$("#server_classes").text("—");
|
|
||||||
}
|
|
||||||
|
|
||||||
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);
|
|
||||||
$("#server_classes").text(data.classes.join(", "));
|
|
||||||
switch ($tap.readyState) {
|
|
||||||
case 0: // connecting
|
|
||||||
case 1: // open
|
|
||||||
case 2: // closing
|
|
||||||
break;
|
|
||||||
case 3: // closed
|
|
||||||
reset_tap_stream();
|
|
||||||
}
|
|
||||||
}).error(server_disconnected);
|
|
||||||
}
|
|
||||||
|
|
||||||
var Ocamlmsg = {
|
|
||||||
_send: function (msg) {
|
|
||||||
$tap.send({data: JSON.stringify(msg)});
|
|
||||||
},
|
|
||||||
|
|
||||||
_post_msg: function (target, datum, token) {
|
|
||||||
return ["post", target, datum, token || ""];
|
|
||||||
},
|
|
||||||
|
|
||||||
post: function (target, datum, token) {
|
|
||||||
Ocamlmsg._send(Ocamlmsg._post_msg(target, datum, token));
|
|
||||||
},
|
|
||||||
|
|
||||||
_subscribe_msg: function (filter, sink, name, reply_sink, reply_name) {
|
|
||||||
return ["subscribe", filter, sink, name, reply_sink || "", reply_name || ""];
|
|
||||||
},
|
|
||||||
|
|
||||||
_subscribe: function (source, filter, name, reply_name) {
|
|
||||||
return Ocamlmsg._post_msg(source,
|
|
||||||
Ocamlmsg._subscribe_msg(filter, $tap.id, name,
|
|
||||||
reply_name ? $tap.id : "",
|
|
||||||
reply_name));
|
|
||||||
},
|
|
||||||
|
|
||||||
subscribe: function (source, filter, name, reply_name) {
|
|
||||||
Ocamlmsg._send(Ocamlmsg._subscribe(source, filter, name, reply_name));
|
|
||||||
},
|
|
||||||
|
|
||||||
_unsubscribe_msg: function (token) {
|
|
||||||
return ["unsubscribe", token];
|
|
||||||
},
|
|
||||||
|
|
||||||
_unsubscribe: function (source, token) {
|
|
||||||
return Ocamlmsg._post_msg(source, Ocamlmsg._unsubscribe_msg(token));
|
|
||||||
},
|
|
||||||
|
|
||||||
unsubscribe: function (source, token) {
|
|
||||||
Ocamlmsg._send(Ocamlmsg._unsubscribe(source, token));
|
|
||||||
},
|
|
||||||
|
|
||||||
_create_msg: function (classname, arg, reply_sink, reply_name) {
|
|
||||||
return ["create", classname, arg, reply_sink || "", reply_name || ""];
|
|
||||||
},
|
|
||||||
|
|
||||||
_create: function (classname, arg, reply_name, factory) {
|
|
||||||
return Ocamlmsg._post_msg(factory || "factory",
|
|
||||||
Ocamlmsg._create_msg(classname, arg,
|
|
||||||
reply_name ? $tap.id : "",
|
|
||||||
reply_name));
|
|
||||||
},
|
|
||||||
|
|
||||||
create: function (classname, arg, reply_name, factory) {
|
|
||||||
Ocamlmsg._send(Ocamlmsg._create(classname, arg, reply_name, factory));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
function reset_tap_stream() {
|
|
||||||
$tap = $.stream("/_/tap", {
|
|
||||||
type: "http",
|
|
||||||
dataType: "json",
|
|
||||||
|
|
||||||
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");
|
|
||||||
},
|
|
||||||
error: server_disconnected,
|
|
||||||
close: server_disconnected
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function ui_main() {
|
|
||||||
refresh_server_stats();
|
|
||||||
setInterval(refresh_server_stats, 5000);
|
|
||||||
|
|
||||||
$.stream.setup({enableXDR: true});
|
|
||||||
reset_tap_stream();
|
|
||||||
}
|
|
Loading…
Reference in New Issue