Userbox refactor
[KiwiIRC.git] / client / src / views / userbox.js
CommitLineData
50ac472f
D
1_kiwi.view.UserBox = Backbone.View.extend({
2 events: {
3 'click .query': 'queryClick',
4 'click .info': 'infoClick',
5 'click .slap': 'slapClick',
6 'click .op': 'opClick',
7 'click .deop': 'deopClick',
8 'click .voice': 'voiceClick',
9 'click .devoice': 'devoiceClick',
10 'click .kick': 'kickClick',
11 'click .ban': 'banClick'
12 },
13
14 initialize: function () {
0d29c21f 15 var text = {
247dd7ac
N
16 op: _kiwi.global.i18n.translate('client_views_userbox_op').fetch(),
17 de_op: _kiwi.global.i18n.translate('client_views_userbox_deop').fetch(),
18 voice: _kiwi.global.i18n.translate('client_views_userbox_voice').fetch(),
19 de_voice: _kiwi.global.i18n.translate('client_views_userbox_devoice').fetch(),
20 kick: _kiwi.global.i18n.translate('client_views_userbox_kick').fetch(),
21 ban: _kiwi.global.i18n.translate('client_views_userbox_ban').fetch(),
22 message: _kiwi.global.i18n.translate('client_views_userbox_query').fetch(),
23 info: _kiwi.global.i18n.translate('client_views_userbox_whois').fetch(),
24 slap: _kiwi.global.i18n.translate('client_views_userbox_slap').fetch()
0d29c21f
JA
25 };
26 this.$el = $(_.template($('#tmpl_userbox').html().trim(), text));
50ac472f
D
27 },
28
d62fa271
D
29 setTargets: function (user, channel) {
30 this.user = user;
31 this.channel = channel;
32 },
33
34 displayOpItems: function(display_items) {
35 if (display_items) {
36 this.$el.find('.if_op').css('display', 'block');
37 } else {
38 this.$el.find('.if_op').css('display', 'none');
39 }
40 },
41
50ac472f 42 queryClick: function (event) {
d62fa271 43 var panel = new _kiwi.model.Query({name: this.user.get('nick')});
50ac472f
D
44 _kiwi.app.connections.active_connection.panels.add(panel);
45 panel.view.show();
46 },
47
48 infoClick: function (event) {
d62fa271 49 _kiwi.app.controlbox.processInput('/whois ' + this.user.get('nick'));
50ac472f
D
50 },
51
52 slapClick: function (event) {
d62fa271 53 _kiwi.app.controlbox.processInput('/slap ' + this.user.get('nick'));
50ac472f
D
54 },
55
56 opClick: function (event) {
d62fa271 57 _kiwi.app.controlbox.processInput('/mode ' + this.channel.get('name') + ' +o ' + this.user.get('nick'));
50ac472f
D
58 },
59
60 deopClick: function (event) {
d62fa271 61 _kiwi.app.controlbox.processInput('/mode ' + this.channel.get('name') + ' -o ' + this.user.get('nick'));
50ac472f
D
62 },
63
64 voiceClick: function (event) {
d62fa271 65 _kiwi.app.controlbox.processInput('/mode ' + this.channel.get('name') + ' +v ' + this.user.get('nick'));
50ac472f
D
66 },
67
68 devoiceClick: function (event) {
d62fa271 69 _kiwi.app.controlbox.processInput('/mode ' + this.channel.get('name') + ' -v ' + this.user.get('nick'));
50ac472f
D
70 },
71
72 kickClick: function (event) {
73 // TODO: Enable the use of a custom kick message
d62fa271 74 _kiwi.app.controlbox.processInput('/kick ' + this.user.get('nick') + ' Bye!');
50ac472f
D
75 },
76
77 banClick: function (event) {
78 // TODO: Set ban on host, not just on nick
d62fa271 79 _kiwi.app.controlbox.processInput('/mode ' + this.channel.get('name') + ' +b ' + this.user.get('nick') + '!*');
50ac472f
D
80 }
81});