Remove junk console.log
[KiwiIRC.git] / client / assets / src / applets / settings.js
1 (function () {
2 var View = Backbone.View.extend({
3 events: {
4 'change [data-setting]': 'saveSettings',
5 'click [data-setting="theme"]': 'selectTheme'
6 },
7
8 initialize: function (options) {
9 this.$el = $($('#tmpl_applet_settings').html().trim());
10
11 // Incase any settings change while we have this open, update them
12 _kiwi.global.settings.on('change', this.loadSettings, this);
13
14 // Now actually show the current settings
15 this.loadSettings();
16
17 },
18
19 loadSettings: function () {
20
21 var that = this;
22
23 $.each(_kiwi.global.settings.attributes, function(key, value) {
24
25 var $el = $('[data-setting="' + key + '"]', that.$el);
26
27 // Only deal with settings we have a UI element for
28 if (!$el.length)
29 return;
30
31 switch ($el.prop('type')) {
32 case 'checkbox':
33 $el.prop('checked', value);
34 break;
35 case 'radio':
36 $('[data-setting="' + key + '"][value="' + value + '"]', that.$el).prop('checked', true);
37 break;
38 case 'text':
39 $el.val(value);
40 break;
41 default:
42 $('[data-setting="' + key + '"][data-value="' + value + '"]', that.$el).addClass('active');
43 break;
44 }
45 });
46 },
47
48 saveSettings: function (event) {
49 var value,
50 settings = _kiwi.global.settings,
51 $setting = $(event.currentTarget, this.$el)
52
53 switch (event.currentTarget.type) {
54 case 'checkbox':
55 value = $setting.is(':checked');
56 break;
57 case 'radio':
58 case 'text':
59 value = $setting.val();
60 break;
61 default:
62 value = $setting.data('value');
63 break;
64 }
65
66 // Stop settings being updated while we're saving one by one
67 _kiwi.global.settings.off('change', this.loadSettings, this);
68 settings.set($setting.data('setting'), value);
69 settings.save();
70
71 // Continue listening for setting changes
72 _kiwi.global.settings.on('change', this.loadSettings, this);
73 },
74
75 selectTheme: function(event) {
76 $('[data-setting="theme"].active', this.$el).removeClass('active');
77 $(event.currentTarget).addClass('active').trigger('change');
78 event.preventDefault();
79 }
80 });
81
82
83 var Applet = Backbone.Model.extend({
84 initialize: function () {
85 this.set('title', 'Settings');
86 this.view = new View();
87 }
88 });
89
90
91 _kiwi.model.Applet.register('kiwi_settings', Applet);
92 })();