From b5dd7e445edf18b358764b57bfd24ce3d8865c5b Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Tue, 1 May 2012 08:48:58 -0400 Subject: [PATCH] Factor out ocamlmsg.js --- web/about.html | 2 +- web/bootstrap/template.xsl | 5 +- web/bootstrap/templates/index.xml | 6 +- web/index.html | 2 +- web/index.js | 46 ++++++++++++ web/ocamlmsg.js | 76 ++++++++++++++++++++ web/ui_main.js | 113 ------------------------------ 7 files changed, 132 insertions(+), 118 deletions(-) create mode 100644 web/index.js create mode 100644 web/ocamlmsg.js delete mode 100644 web/ui_main.js diff --git a/web/about.html b/web/about.html index 7e1107b..3c2bc90 100644 --- a/web/about.html +++ b/web/about.html @@ -10,7 +10,7 @@ } - diff --git a/web/bootstrap/template.xsl b/web/bootstrap/template.xsl index dfbe270..7822935 100644 --- a/web/bootstrap/template.xsl +++ b/web/bootstrap/template.xsl @@ -20,7 +20,10 @@ - + + + + [if lt IE 9]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif] diff --git a/web/bootstrap/templates/index.xml b/web/bootstrap/templates/index.xml index 511de3c..3cd2173 100644 --- a/web/bootstrap/templates/index.xml +++ b/web/bootstrap/templates/index.xml @@ -1,6 +1,10 @@ Ocamlmsg
main
+ + index.js + +

Server statistics

@@ -28,6 +32,4 @@

Debug


-
-  
diff --git a/web/index.html b/web/index.html
index 4dde992..51ae838 100644
--- a/web/index.html
+++ b/web/index.html
@@ -10,7 +10,7 @@
 	}
       
-
diff --git a/web/index.js b/web/index.js
new file mode 100644
index 0000000..58d9201
--- /dev/null
+++ b/web/index.js
@@ -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
+    });
+}
diff --git a/web/ocamlmsg.js b/web/ocamlmsg.js
new file mode 100644
index 0000000..6c6fa4f
--- /dev/null
+++ b/web/ocamlmsg.js
@@ -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);
+    }
+}
diff --git a/web/ui_main.js b/web/ui_main.js
deleted file mode 100644
index 5fda8bd..0000000
--- a/web/ui_main.js
+++ /dev/null
@@ -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();
-}