From b5141adb37fa6e35e0f46bd37c0452a00c2e4917 Mon Sep 17 00:00:00 2001 From: Darren Date: Sat, 25 Aug 2012 19:42:56 +0100 Subject: [PATCH] Setting and changing topics --- client_backbone/model_application.js | 30 ++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/client_backbone/model_application.js b/client_backbone/model_application.js index d5cc4bc..2ae0dd1 100644 --- a/client_backbone/model_application.js +++ b/client_backbone/model_application.js @@ -1,6 +1,9 @@ kiwi.model.Application = Backbone.Model.extend(new (function () { var that = this; + /** Instance of kiwi.model.PanelList */ + this.panels = null; + this.initialize = function () { // Update `that` with this new Model object that = this; @@ -28,7 +31,7 @@ kiwi.model.Application = Backbone.Model.extend(new (function () { this.initializeClient = function () { - this.view = new kiwi.view.Application({model: this, el: this.get('container')}) + this.view = new kiwi.view.Application({model: this, el: this.get('container')}); /** @@ -57,7 +60,6 @@ kiwi.model.Application = Backbone.Model.extend(new (function () { gw.on('onjoin', function (event) { - console.log(event); var c, members, user; c = that.panels.getByName(event.channel); if (!c) { @@ -192,6 +194,8 @@ kiwi.model.Application = Backbone.Model.extend(new (function () { kiwi.gateway.changeNick(ev.params[0]); }); + controlbox.on('command_topic', this.topicCommand); + controlbox.on('command_css', function (ev) { var queryString = '?reload=' + new Date().getTime(); $('link[rel="stylesheet"]').each(function () { @@ -231,6 +235,21 @@ kiwi.model.Application = Backbone.Model.extend(new (function () { //kiwi.app.panels.remove(kiwi.current_panel); }; + this.topicCommand = function (ev) { + var channel_name; + + if (ev.params.length === 0) return; + + if (that.isChannelName(ev.params[0])) { + channel_name = ev.params[0]; + ev.params.shift(); + } else { + channel_name = kiwi.current_panel.get('name'); + } + + kiwi.gateway.topic(channel_name, ev.params.join(' ')); + }; + @@ -239,4 +258,11 @@ kiwi.model.Application = Backbone.Model.extend(new (function () { $('#topic input').val(new_topic); }; + this.isChannelName = function (channel_name) { + var channel_prefix = kiwi.gateway.get('channel_prefix'); + + if (!channel_name || !channel_name.length) return false; + return (channel_prefix.indexOf(channel_name[0]) > -1); + }; + })()); \ No newline at end of file -- 2.25.1