Commit | Line | Data |
---|---|---|
50ac472f D |
1 | _kiwi.view.UserBox = Backbone.View.extend({ |
2 | events: { | |
3 | 'click .query': 'queryClick', | |
4 | 'click .info': 'infoClick', | |
a938bce3 D |
5 | 'change .ignore': 'ignoreChange', |
6 | 'click .ignore': 'ignoreClick', | |
50ac472f D |
7 | 'click .op': 'opClick', |
8 | 'click .deop': 'deopClick', | |
9 | 'click .voice': 'voiceClick', | |
10 | 'click .devoice': 'devoiceClick', | |
11 | 'click .kick': 'kickClick', | |
12 | 'click .ban': 'banClick' | |
13 | }, | |
14 | ||
15 | initialize: function () { | |
0d29c21f | 16 | var text = { |
247dd7ac N |
17 | op: _kiwi.global.i18n.translate('client_views_userbox_op').fetch(), |
18 | de_op: _kiwi.global.i18n.translate('client_views_userbox_deop').fetch(), | |
19 | voice: _kiwi.global.i18n.translate('client_views_userbox_voice').fetch(), | |
20 | de_voice: _kiwi.global.i18n.translate('client_views_userbox_devoice').fetch(), | |
21 | kick: _kiwi.global.i18n.translate('client_views_userbox_kick').fetch(), | |
22 | ban: _kiwi.global.i18n.translate('client_views_userbox_ban').fetch(), | |
23 | message: _kiwi.global.i18n.translate('client_views_userbox_query').fetch(), | |
24 | info: _kiwi.global.i18n.translate('client_views_userbox_whois').fetch(), | |
a938bce3 | 25 | ignore: _kiwi.global.i18n.translate('client_views_userbox_ignore').fetch() |
0d29c21f JA |
26 | }; |
27 | this.$el = $(_.template($('#tmpl_userbox').html().trim(), text)); | |
50ac472f D |
28 | }, |
29 | ||
d62fa271 D |
30 | setTargets: function (user, channel) { |
31 | this.user = user; | |
32 | this.channel = channel; | |
a938bce3 D |
33 | |
34 | var is_ignored = _kiwi.app.connections.active_connection.isNickIgnored(this.user.get('nick')); | |
35 | this.$('.ignore input').attr('checked', is_ignored ? 'checked' : false); | |
d62fa271 D |
36 | }, |
37 | ||
38 | displayOpItems: function(display_items) { | |
39 | if (display_items) { | |
40 | this.$el.find('.if_op').css('display', 'block'); | |
41 | } else { | |
42 | this.$el.find('.if_op').css('display', 'none'); | |
43 | } | |
44 | }, | |
45 | ||
50ac472f | 46 | queryClick: function (event) { |
d62fa271 | 47 | var panel = new _kiwi.model.Query({name: this.user.get('nick')}); |
50ac472f D |
48 | _kiwi.app.connections.active_connection.panels.add(panel); |
49 | panel.view.show(); | |
50 | }, | |
51 | ||
52 | infoClick: function (event) { | |
d62fa271 | 53 | _kiwi.app.controlbox.processInput('/whois ' + this.user.get('nick')); |
50ac472f D |
54 | }, |
55 | ||
a938bce3 D |
56 | ignoreClick: function (event) { |
57 | // Stop the menubox from closing since it will not update the checkbox otherwise | |
58 | event.stopPropagation(); | |
59 | }, | |
60 | ||
61 | ignoreChange: function (event) { | |
62 | if ($(event.currentTarget).find('input').is(':checked')) { | |
63 | _kiwi.app.controlbox.processInput('/ignore ' + this.user.get('nick')); | |
64 | } else { | |
65 | _kiwi.app.controlbox.processInput('/unignore ' + this.user.get('nick')); | |
66 | } | |
50ac472f D |
67 | }, |
68 | ||
69 | opClick: function (event) { | |
d62fa271 | 70 | _kiwi.app.controlbox.processInput('/mode ' + this.channel.get('name') + ' +o ' + this.user.get('nick')); |
50ac472f D |
71 | }, |
72 | ||
73 | deopClick: function (event) { | |
d62fa271 | 74 | _kiwi.app.controlbox.processInput('/mode ' + this.channel.get('name') + ' -o ' + this.user.get('nick')); |
50ac472f D |
75 | }, |
76 | ||
77 | voiceClick: function (event) { | |
d62fa271 | 78 | _kiwi.app.controlbox.processInput('/mode ' + this.channel.get('name') + ' +v ' + this.user.get('nick')); |
50ac472f D |
79 | }, |
80 | ||
81 | devoiceClick: function (event) { | |
d62fa271 | 82 | _kiwi.app.controlbox.processInput('/mode ' + this.channel.get('name') + ' -v ' + this.user.get('nick')); |
50ac472f D |
83 | }, |
84 | ||
85 | kickClick: function (event) { | |
86 | // TODO: Enable the use of a custom kick message | |
d62fa271 | 87 | _kiwi.app.controlbox.processInput('/kick ' + this.user.get('nick') + ' Bye!'); |
50ac472f D |
88 | }, |
89 | ||
90 | banClick: function (event) { | |
91 | // TODO: Set ban on host, not just on nick | |
d62fa271 | 92 | _kiwi.app.controlbox.processInput('/mode ' + this.channel.get('name') + ' +b ' + this.user.get('nick') + '!*'); |
50ac472f D |
93 | } |
94 | }); |