Client: #toolbar change to .toolbar
[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.channel = this;
18 members.bind("add", function (member) {
19 var show_message = _kiwi.global.settings.get('show_joins_parts');
20 if (show_message === false) {
21 return;
22 }
23
24 this.addMsg(' ', '== ' + member.displayNick(true) + ' has joined', 'action join');
25 }, this);
26
27 members.bind("remove", function (member, members, options) {
28 var show_message = _kiwi.global.settings.get('show_joins_parts');
29 if (show_message === false) {
30 return;
31 }
32
33 var msg = (options.message) ? '(' + options.message + ')' : '';
34
35 if (options.type === 'quit') {
36 this.addMsg(' ', '== ' + member.displayNick(true) + ' has quit ' + msg, 'action quit');
37 } else if(options.type === 'kick') {
38 this.addMsg(' ', '== ' + member.displayNick(true) + ' was kicked by ' + options.by + ' ' + msg, 'action kick');
39 } else {
40 this.addMsg(' ', '== ' + member.displayNick(true) + ' has left ' + msg, 'action part');
41 }
42 }, this);
43 }
44 });