From: Darren Date: Fri, 31 Aug 2012 21:30:55 +0000 (+0100) Subject: Action sending/recieving X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=0f40d49918b5d6bb3ebf7bb310434cbe77b86787;p=KiwiIRC.git Action sending/recieving --- diff --git a/client_backbone/model_application.js b/client_backbone/model_application.js index f1a5faa..b53e192 100644 --- a/client_backbone/model_application.js +++ b/client_backbone/model_application.js @@ -162,6 +162,31 @@ kiwi.model.Application = Backbone.Model.extend(new (function () { }); + gw.on('onaction', function (event) { + var panel, + is_pm = (event.channel == kiwi.gateway.get('nick')); + + if (is_pm) { + // If a panel isn't found for this PM, create one + panel = that.panels.getByName(event.nick); + if (!panel) { + panel = new kiwi.model.Channel({name: event.nick}); + that.panels.add(panel); + } + + } else { + // If a panel isn't found for this channel, reroute to the + // server panel + panel = that.panels.getByName(event.channel); + if (!panel) { + panel = that.panels.server; + } + } + + panel.addMsg('', '* ' + event.nick + ' ' + event.msg, 'action'); + }); + + gw.on('ontopic', function (event) { var c; c = that.panels.getByName(event.channel); @@ -264,6 +289,9 @@ kiwi.model.Application = Backbone.Model.extend(new (function () { controlbox.on('command', this.allCommands); controlbox.on('command_msg', this.msgCommand); + controlbox.on('command_action', this.actionCommand); + controlbox.on('command_me', this.actionCommand); + controlbox.on('command_join', this.joinCommand); controlbox.on('command_j', this.joinCommand); @@ -349,6 +377,16 @@ kiwi.model.Application = Backbone.Model.extend(new (function () { kiwi.gateway.privmsg(destination, ev.params.join(' ')); }; + this.actionCommand = function (ev) { + if (kiwi.current_panel === kiwi.app.panels.server) { + return; + } + + var panel = kiwi.current_panel; + panel.addMsg('', '* ' + kiwi.gateway.get('nick') + ' ' + ev.params.join(' '), 'action'); + kiwi.gateway.action(panel.get('name'), ev.params.join(' ')); + }; + this.partCommand = function (ev) { if (ev.params.length === 0) { kiwi.gateway.part(kiwi.current_panel.get('name'));