TopicBar listening for active panel changes
authorDarren <darren@darrenwhitlen.com>
Sun, 2 Sep 2012 02:00:25 +0000 (03:00 +0100)
committerDarren <darren@darrenwhitlen.com>
Sun, 2 Sep 2012 02:00:25 +0000 (03:00 +0100)
client_backbone/model_application.js
client_backbone/view.js

index 0743b0bafd9552b367bcb846ad4f35c235dc657f..d851cc5b21842a7c2ed4dbffbb7dadbfa4b27ee8 100644 (file)
@@ -20,9 +20,7 @@ kiwi.model.Application = Backbone.Model.extend(new (function () {
         this.initializeClient();\r
         this.view.barsHide(true);\r
 \r
-        this.panels.server.server_login.on('server_connect', function (event) {\r
-            var form = this;\r
-\r
+        this.panels.server.server_login.bind('server_connect', function (event) {\r
             auto_connect_details = event;\r
 \r
             kiwi.gateway.set('nick', event.nick);\r
@@ -39,13 +37,14 @@ kiwi.model.Application = Backbone.Model.extend(new (function () {
         /**\r
          * Set the UI components up\r
          */\r
+        this.panels = new kiwi.model.PanelList();\r
+\r
         this.controlbox = new kiwi.view.ControlBox({el: $('#controlbox')[0]});\r
         this.bindControllboxCommands(this.controlbox);\r
 \r
         this.topicbar = new kiwi.view.TopicBar({el: $('#topic')[0]});\r
 \r
-        // Container for the channels\r
-        this.panels = new kiwi.model.PanelList();\r
+        \r
         this.panels.server.view.show();\r
 \r
         // Rejigg the UI sizes\r
index 6a17376432170c67538815b54d9b55f77db05877..b88a4c05af8bed5563b49e180d3e8b14fa380714 100644 (file)
@@ -63,20 +63,16 @@ kiwi.view.UserBox = Backbone.View.extend({
 \r
 \r
 kiwi.view.ServerSelect = Backbone.View.extend({\r
-    that: null,\r
-\r
     events: {\r
         'submit form': 'submitLogin',\r
         'click .show_more': 'showMore'\r
     },\r
 \r
     initialize: function () {\r
-        that = this;\r
-\r
         this.$el = $($('#tmpl_server_select').html());\r
 \r
-        kiwi.gateway.on('onconnect', this.networkConnected);\r
-        kiwi.gateway.on('connecting', this.networkConnecting);\r
+        kiwi.gateway.bind('onconnect', this.networkConnected, this);\r
+        kiwi.gateway.bind('connecting', this.networkConnecting, this);\r
     },\r
 \r
     submitLogin: function (event) {\r
@@ -86,7 +82,7 @@ kiwi.view.ServerSelect = Backbone.View.extend({
             channel: $('.channel', this.$el).val()\r
         };\r
 \r
-        that.trigger('server_connect', values);\r
+        this.trigger('server_connect', values);\r
         return false;\r
     },\r
 \r
@@ -114,7 +110,7 @@ kiwi.view.ServerSelect = Backbone.View.extend({
 \r
     show: function () {\r
         this.$el.show();\r
-        $('.nick', that.$el).focus();\r
+        $('.nick', this.$el).focus();\r
     },\r
 \r
     setStatus: function (text, class_name) {\r
@@ -129,12 +125,12 @@ kiwi.view.ServerSelect = Backbone.View.extend({
     },\r
 \r
     networkConnected: function (event) {\r
-        that.setStatus('Connected :)', 'ok');\r
+        this.setStatus('Connected :)', 'ok');\r
         $('form', this.$el).hide();\r
     },\r
 \r
     networkConnecting: function (event) {\r
-        that.setStatus('Connecting..', 'ok');\r
+        this.setStatus('Connecting..', 'ok');\r
     }\r
 });\r
 \r
@@ -220,8 +216,6 @@ kiwi.view.Panel = Backbone.View.extend({
             this.$container.parent().css('right', '0');\r
         }\r
 \r
-        kiwi.app.topicbar.setCurrentTopic(this.model.get("topic") || "");\r
-\r
         this.scrollToBottom();\r
 \r
         this.trigger('active', this.model);\r
@@ -340,6 +334,9 @@ kiwi.view.TopicBar = Backbone.View.extend({
     },\r
 \r
     initialize: function () {\r
+        kiwi.app.panels.bind('active', function (active_panel) {\r
+            this.setCurrentTopic(active_panel.get('topic'));\r
+        }, this);\r
     },\r
 \r
     process: function (ev) {\r