Separated any front end references from gateway.js
authorDarren <darren@darrenwhitlen.com>
Sat, 6 Aug 2011 18:24:02 +0000 (19:24 +0100)
committerDarren <darren@darrenwhitlen.com>
Sat, 6 Aug 2011 18:24:02 +0000 (19:24 +0100)
js/front.js
js/gateway.js
node/kiwi.js

index 3989776ba4a1d519c4f56e043f0283c155edd171..7a632a13be1af5030df8970ae9405c75776f4a47 100644 (file)
@@ -24,6 +24,7 @@ var front = {
         $(gateway).bind("onmotd", front.onMOTD);
         $(gateway).bind("onoptions", front.onOptions);
         $(gateway).bind("onconnect", front.onConnect);
+        $(gateway).bind("onconnect_fail", front.onConnectFail);
         $(gateway).bind("ondisconnect", front.onDisconnect);
         $(gateway).bind("onnick", front.onNick);
         $(gateway).bind("onuserlist", front.onUserList);
@@ -418,6 +419,10 @@ var front = {
             front.tabviews.server.addMsg(null, ' ', '=== Failed to connect :(', 'status');
         }
     },
+    onConnectFail: function (e, data) {
+        var reason = (typeof data.reason === 'string') ? data.reason : '';
+        front.tabviews.server.addMsg(null, '', 'There\'s a problem connecting! (' + reason + ')', 'error');
+    },
     onDisconnect: function (e, data) {
         var tab;
         for (tab in front.tabviews) {
index 73ed97dc61837d8e1fdb4971e5f5b7baaec9be09..d7ebc5675b7ccd3dd3edebaed989a39767f78cfd 100644 (file)
@@ -23,15 +23,19 @@ var gateway = {
         if (typeof gateway.kiwi_server !== 'undefined') {
             gateway.socket = io.connect(kiwi_server, {'max reconnection attempts': 3});
             gateway.socket.of('/kiwi').on('connect_failed', function (reason) {
+                // TODO: When does this even actually get fired? I can't find a case! ~Darren
                 console.debug('Unable to connect Socket.IO', reason);
-                front.tabviews.server.addMsg(null, ' ', 'Unable to connect to Kiwi IRC.\n' + reason, 'error');
+                //front.tabviews.server.addMsg(null, ' ', 'Unable to connect to Kiwi IRC.\n' + reason, 'error');
                 gateway.socket.disconnect();
-                $(gateway).trigger("ondisconnect", {});
+                $(gateway).trigger("onconnect_fail", {reason: reason});
                 gateway.sendData = function () {};
             }).on('error', function (e) {
+                $(gateway).trigger("onconnect_fail", {});
                 console.debug(e);
+                console.log(e);
             });
             gateway.socket.on('connect', function () {
+                console.log('connect event');
                 gateway.sendData = function (data, callback) {
                     gateway.socket.emit('message', {sid: this.session_id, data: $.toJSON(data)}, callback);
                 };
@@ -43,7 +47,7 @@ var gateway = {
                 gateway.socket.emit('irc connect', gateway.nick, host, port, ssl, callback);
             });
             gateway.socket.on('too_many_connections', function () {
-                front.tabviews.server.addMsg(null, ' ', 'Unable to connect to Kiwi IRC.\nYour IP address has too many connections to Kiwi IRC', 'error');
+                $(gateway).trigger("onconnect_fail", {reason: 'too_many_connections'});
             });
         }
     },
index bfd0e16a865a0c746ac9f7adb98f53ce9f325e38..40da463ebe535c3e3fd99652a71c58e1bcf57289 100644 (file)
@@ -586,7 +586,7 @@ io.of('/kiwi').authorization(function (handshakeData, callback) {
                     break;
                 case 'action':
                     if ((args.target) && (args.msg)) {
-                        websocket.sendServerLine('PRIVMSG ' + args.target + ' :\ 1ACTION ' + args.msg);
+                        websocket.sendServerLine('PRIVMSG ' + args.target + ' :\ 1' + String.fromCharCode(1) + 'ACTION ' + args.msg + String.fromCharCode(1));
                     }
                     break;
                 case 'raw':