Client: Private `kiwi` namespace renamed to `_kiwi`
[KiwiIRC.git] / client / assets / dev / model_channel.js
1 // TODO: Channel modes
2 // TODO: Listen to gateway events for anythign related to this channel
3 _kiwi.model.Channel = _kiwi.model.Panel.extend({
4 initialize: function (attributes) {
5 var name = this.get("name") || "",
6 members;
7
8 this.view = new _kiwi.view.Channel({"model": this, "name": name});
9 this.set({
10 "members": new _kiwi.model.MemberList(),
11 "name": name,
12 "scrollback": [],
13 "topic": ""
14 }, {"silent": true});
15
16 members = this.get("members");
17 members.bind("add", function (member) {
18 this.addMsg(' ', '== ' + member.displayNick(true) + ' has joined', 'action join');
19 }, this);
20
21 members.bind("remove", function (member, members, options) {
22 var msg = (options.message) ? '(' + options.message + ')' : '';
23
24 if (options.type === 'quit') {
25 this.addMsg(' ', '== ' + member.displayNick(true) + ' has quit ' + msg, 'action quit');
26 } else if(options.type === 'kick') {
27 this.addMsg(' ', '== ' + member.displayNick(true) + ' was kicked by ' + options.by + ' ' + msg, 'action kick');
28 } else {
29 this.addMsg(' ', '== ' + member.displayNick(true) + ' has left ' + msg, 'action part');
30 }
31 }, this);
32 }
33 });