Change nick UI + nick updating properly
authorDarren <darren@Darrens-MacBook-Pro.local>
Wed, 24 Apr 2013 21:03:50 +0000 (22:03 +0100)
committerDarren <darren@Darrens-MacBook-Pro.local>
Wed, 24 Apr 2013 21:03:50 +0000 (22:03 +0100)
client/assets/dev/app.js
client/assets/dev/model_application.js
client/assets/dev/model_gateway.js
client/assets/dev/view.js

index 6b9922b1ad546b59a7676ad635304d933208cdff..39c5be6d1b8dbe292a8a022f79005dfdb542a200 100644 (file)
@@ -65,7 +65,7 @@ _kiwi.global = {
                var funcs = {\r
                        kiwi: 'kiwi', raw: 'raw', kick: 'kick', topic: 'topic',\r
                        part: 'part', join: 'join', action: 'action', ctcp: 'ctcp',\r
-                       notice: 'notice', msg: 'privmsg',\r
+                       notice: 'notice', msg: 'privmsg', changeNick: 'changeNick',\r
                        get: 'get'\r
                };\r
 \r
index bff5175dfcd4841247c483a07745df07867fc445..3825f61fd64d4161423f447ef3bddbf71f59dfff 100644 (file)
@@ -72,7 +72,7 @@ _kiwi.model.Application = function () {
                     _kiwi.gateway.set('kiwi_server', that.kiwi_server + '/kiwi');\r
                     _kiwi.gateway.set('nick', event.nick);\r
                     \r
-                    _kiwi.gateway.connect(event.server, event.port, event.ssl, event.password, function (error) {\r
+                    _kiwi.gateway.connect(event.nick, event.server, event.port, event.ssl, event.password, function (error) {\r
                         if (error) {\r
                             kiwiServerNotFound();\r
                         }\r
index 9db724b248ef97fb9d2f1957209d222a9bdeca85..5e0caa58b22879fd047d12c1e053fe22c0f0fa60 100644 (file)
@@ -75,7 +75,8 @@ _kiwi.model.Gateway = function () {
         // Some easier handler events\r
         this.on('onmsg', function (event) {\r
             var source,\r
-                is_pm = (event.channel == that.get('nick'));\r
+                connection = _kiwi.app.connections.getByConnectionId(event.server),\r
+                is_pm = (event.channel == connection.get('nick'));\r
 \r
             source = is_pm ? event.nick : event.channel;\r
             \r
@@ -100,7 +101,8 @@ _kiwi.model.Gateway = function () {
 \r
         this.on('onaction', function (event) {\r
             var source,\r
-                is_pm = (event.channel == that.get('nick'));\r
+                connection = _kiwi.app.connections.getByConnectionId(event.server),\r
+                is_pm = (event.channel == cinnection.get('nick'));\r
 \r
             source = is_pm ? event.nick : event.channel;\r
             \r
@@ -130,13 +132,14 @@ _kiwi.model.Gateway = function () {
 \r
     /**\r
     *   Connects to the server\r
+    *   @param  {String}    nick        The nickname of the user to use on the network\r
     *   @param  {String}    host        The hostname or IP address of the IRC server to connect to\r
     *   @param  {Number}    port        The port of the IRC server to connect to\r
     *   @param  {Boolean}   ssl         Whether or not to connect to the IRC server using SSL\r
     *   @param  {String}    password    The password to supply to the IRC server during registration\r
     *   @param  {Function}  callback    A callback function to be invoked once Kiwi's server has connected to the IRC server\r
     */\r
-    this.connect = function (host, port, ssl, password, callback) {\r
+    this.connect = function (nick, host, port, ssl, password, callback) {\r
         var resource;\r
 \r
         // Work out the resource URL for socket.io\r
@@ -180,7 +183,7 @@ _kiwi.model.Gateway = function () {
          */\r
         this.socket.on('connect', function () {\r
             that.newConnection({\r
-                nick: that.get('nick'),\r
+                nick: nick,\r
                 host: host,\r
                 port: port,\r
                 ssl: ssl,\r
@@ -291,8 +294,6 @@ _kiwi.model.Gateway = function () {
         //console.log('gateway event', command, data);\r
 \r
         if (command !== undefined) {\r
-            that.trigger('on' + command, data);\r
-\r
             switch (command) {\r
             case 'options':\r
                 $.each(data.options, function (name, value) {\r
@@ -311,15 +312,6 @@ _kiwi.model.Gateway = function () {
                 that.set('cap', data.cap);\r
                 break;\r
 \r
-            case 'connect':\r
-                that.set('nick', data.nick);\r
-                break;\r
-\r
-            case 'nick':\r
-                if (data.nick === that.get('nick')) {\r
-                    that.set('nick', data.newnick);\r
-                }\r
-                break;\r
             /*\r
             case 'sync':\r
                 if (_kiwi.gateway.onSync && _kiwi.gateway.syncing) {\r
@@ -342,6 +334,9 @@ _kiwi.model.Gateway = function () {
                 event_data: data\r
             });\r
         }\r
+\r
+        // Trigger the global events (Mainly legacy now)\r
+        that.trigger('on' + command, data);\r
     };\r
 \r
     /**\r
index d7ba0085561f1ba6a1b51e0ee64705889a66ef6c..31f73ffcf52a3413358aac9d494560a28d359ddf 100644 (file)
@@ -154,7 +154,10 @@ _kiwi.view.NickChangeBox = Backbone.View.extend({
 \r
     changeNick: function (event) {\r
         var that = this;\r
-        _kiwi.gateway.changeNick(this.$el.find('input').val(), function (err, val) {\r
+\r
+        event.preventDefault();\r
+\r
+        _kiwi.app.connections.active_connection.gateway.changeNick(this.$el.find('input').val(), function (err, val) {\r
             that.close();\r
         });\r
         return false;\r
@@ -904,9 +907,6 @@ _kiwi.view.ControlBox = Backbone.View.extend({
         _kiwi.gateway.bind('onnick', function (event) {\r
             $('.nick', that.$el).text(_kiwi.app.connections.active_connection.get('nick'));\r
         });\r
-        _kiwi.gateway.bind('onconnect', function (event) {\r
-            $('.nick', that.$el).text(event.nick);\r
-        });\r
 \r
         // Update our nick view as we flick between connections\r
         _kiwi.app.connections.on('active', function(panel, connection) {\r