Merge branch 'development'
[KiwiIRC.git] / client / src / models / panel.js
CommitLineData
eaaf73b0 1_kiwi.model.Panel = Backbone.Model.extend({\r
9df70c63
D
2 initialize: function (attributes) {\r
3 var name = this.get("name") || "";\r
eaaf73b0 4 this.view = new _kiwi.view.Panel({"model": this, "name": name});\r
9df70c63
D
5 this.set({\r
6 "scrollback": [],\r
7 "name": name\r
8 }, {"silent": true});\r
27aafe0c
D
9\r
10 _kiwi.global.events.emit('panel:created', {panel: this});\r
9df70c63
D
11 },\r
12\r
c891916b 13 close: function () {\r
68c7f7c0 14 _kiwi.app.panels.trigger('close', this);\r
27aafe0c
D
15 _kiwi.global.events.emit('panel:close', {panel: this});\r
16\r
ea033d12 17 if (this.view) {\r
51ae0eb8 18 this.view.unbind();\r
ea033d12 19 this.view.remove();\r
51ae0eb8 20 this.view = undefined;\r
ea033d12
D
21 delete this.view;\r
22 }\r
9df70c63
D
23\r
24 var members = this.get('members');\r
25 if (members) {\r
26 members.reset([]);\r
27 this.unset('members');\r
28 }\r
29\r
6d5faa6e 30 this.get('panel_list').remove(this);\r
f5f8cee8 31\r
ea033d12 32 this.unbind();\r
9df70c63 33 this.destroy();\r
9df70c63
D
34 },\r
35\r
36 isChannel: function () {\r
425efe7a 37 return false;\r
df7b7bf8
D
38 },\r
39\r
4d4145aa 40 isQuery: function () {\r
4d4145aa
D
41 return false;\r
42 },\r
43\r
19cc6364 44 isApplet: function () {\r
425efe7a 45 return false;\r
72371b1a
D
46 },\r
47\r
48 isServer: function () {\r
425efe7a 49 return false;\r
145389ff
D
50 },\r
51\r
52 isActive: function () {\r
6d5faa6e 53 return (_kiwi.app.panels().active === this);\r
9df70c63
D
54 }\r
55});