From 4c1f047ced0834350dbf792b8ef9587a1101e57b Mon Sep 17 00:00:00 2001 From: Darren Date: Sun, 2 Sep 2012 03:00:25 +0100 Subject: [PATCH] TopicBar listening for active panel changes --- client_backbone/model_application.js | 9 ++++----- client_backbone/view.js | 21 +++++++++------------ 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/client_backbone/model_application.js b/client_backbone/model_application.js index 0743b0b..d851cc5 100644 --- a/client_backbone/model_application.js +++ b/client_backbone/model_application.js @@ -20,9 +20,7 @@ kiwi.model.Application = Backbone.Model.extend(new (function () { this.initializeClient(); this.view.barsHide(true); - this.panels.server.server_login.on('server_connect', function (event) { - var form = this; - + this.panels.server.server_login.bind('server_connect', function (event) { auto_connect_details = event; kiwi.gateway.set('nick', event.nick); @@ -39,13 +37,14 @@ kiwi.model.Application = Backbone.Model.extend(new (function () { /** * Set the UI components up */ + this.panels = new kiwi.model.PanelList(); + this.controlbox = new kiwi.view.ControlBox({el: $('#controlbox')[0]}); this.bindControllboxCommands(this.controlbox); this.topicbar = new kiwi.view.TopicBar({el: $('#topic')[0]}); - // Container for the channels - this.panels = new kiwi.model.PanelList(); + this.panels.server.view.show(); // Rejigg the UI sizes diff --git a/client_backbone/view.js b/client_backbone/view.js index 6a17376..b88a4c0 100644 --- a/client_backbone/view.js +++ b/client_backbone/view.js @@ -63,20 +63,16 @@ kiwi.view.UserBox = Backbone.View.extend({ kiwi.view.ServerSelect = Backbone.View.extend({ - that: null, - events: { 'submit form': 'submitLogin', 'click .show_more': 'showMore' }, initialize: function () { - that = this; - this.$el = $($('#tmpl_server_select').html()); - kiwi.gateway.on('onconnect', this.networkConnected); - kiwi.gateway.on('connecting', this.networkConnecting); + kiwi.gateway.bind('onconnect', this.networkConnected, this); + kiwi.gateway.bind('connecting', this.networkConnecting, this); }, submitLogin: function (event) { @@ -86,7 +82,7 @@ kiwi.view.ServerSelect = Backbone.View.extend({ channel: $('.channel', this.$el).val() }; - that.trigger('server_connect', values); + this.trigger('server_connect', values); return false; }, @@ -114,7 +110,7 @@ kiwi.view.ServerSelect = Backbone.View.extend({ show: function () { this.$el.show(); - $('.nick', that.$el).focus(); + $('.nick', this.$el).focus(); }, setStatus: function (text, class_name) { @@ -129,12 +125,12 @@ kiwi.view.ServerSelect = Backbone.View.extend({ }, networkConnected: function (event) { - that.setStatus('Connected :)', 'ok'); + this.setStatus('Connected :)', 'ok'); $('form', this.$el).hide(); }, networkConnecting: function (event) { - that.setStatus('Connecting..', 'ok'); + this.setStatus('Connecting..', 'ok'); } }); @@ -220,8 +216,6 @@ kiwi.view.Panel = Backbone.View.extend({ this.$container.parent().css('right', '0'); } - kiwi.app.topicbar.setCurrentTopic(this.model.get("topic") || ""); - this.scrollToBottom(); this.trigger('active', this.model); @@ -340,6 +334,9 @@ kiwi.view.TopicBar = Backbone.View.extend({ }, initialize: function () { + kiwi.app.panels.bind('active', function (active_panel) { + this.setCurrentTopic(active_panel.get('topic')); + }, this); }, process: function (ev) { -- 2.25.1