X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=client%2Fassets%2Fdev%2Fapplet_chanlist.js;h=7b27735a5635911b82b5d5ff1c528ca2cdb1ee82;hb=93da4e95f2974eecc8fa7b61bd36a42f2a6a10b2;hp=629ea092478d0e9144b1e40e1b886bf959c47baa;hpb=2427e69ee0551a9445f8042a2e7cfdb8b8b06b8e;p=KiwiIRC.git diff --git a/client/assets/dev/applet_chanlist.js b/client/assets/dev/applet_chanlist.js index 629ea09..7b27735 100644 --- a/client/assets/dev/applet_chanlist.js +++ b/client/assets/dev/applet_chanlist.js @@ -50,13 +50,28 @@ - _kiwi.applets.Chanlist = Backbone.Model.extend({ + var Applet = Backbone.Model.extend({ initialize: function () { this.set('title', 'Channel List'); this.view = new View(); + + this.network = _kiwi.global.components.Network(); + this.network.on('onlist_channel', this.onListChannel, this); + this.network.on('onlist_start', this.onListStart, this); }, + // New channels to add to our list + onListChannel: function (event) { + console.log(event); + this.addChannel(event.chans); + }, + + // A new, fresh channel list starting + onListStart: function (event) { + // TODO: clear out our existing list + }, + addChannel: function (channels) { var that = this; @@ -65,7 +80,7 @@ } _.each(channels, function (chan) { var html, channel; - html = '' + _.escape(chan.channel) + '' + chan.num_users + '' + formatIRCMsg(_.escape(chan.topic)) + ''; + html = '' + _.escape(chan.channel) + '' + chan.num_users + '' + formatIRCMsg(_.escape(chan.topic)) + ''; chan.html = html; that.view.channels.push(chan); }); @@ -86,8 +101,13 @@ this.view.$el.html(''); this.view.remove(); this.view = null; + + // Remove any network event bindings + this.network.off(); } }); + + _kiwi.model.Applet.register('kiwi_chanlist', Applet); })(); \ No newline at end of file