Factor out ocamlmsg.js
This commit is contained in:
parent
bb12066819
commit
b5dd7e445e
|
@ -10,7 +10,7 @@
|
|||
}
|
||||
</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="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>
|
||||
<![endif]
|
||||
-->
|
||||
|
|
|
@ -20,7 +20,10 @@
|
|||
<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>
|
||||
<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">>
|
||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<!</xsl:text>[endif]
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<page>
|
||||
<title>Ocamlmsg</title>
|
||||
<section>main</section>
|
||||
|
||||
<load>index.js</load>
|
||||
<script>$(document).ready(ui_main);</script>
|
||||
|
||||
<body>
|
||||
<h2>Server statistics</h2>
|
||||
<table class="table">
|
||||
|
@ -28,6 +32,4 @@
|
|||
<h2>Debug</h2>
|
||||
<pre id="debug_container"></pre>
|
||||
</body>
|
||||
|
||||
<script>$(document).ready(ui_main);</script>
|
||||
</page>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
}
|
||||
</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="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>
|
||||
<![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