Merge pull request #280 from M2Ys4U/settings
[KiwiIRC.git] / client / assets / src / applets / settings.js
CommitLineData
4baeda09
D
1(function () {\r
2 var View = Backbone.View.extend({\r
3 events: {\r
4 'click .save': 'saveSettings'\r
5 },\r
19cc6364 6\r
4baeda09 7 initialize: function (options) {\r
0935901c 8 this.$el = $($('#tmpl_applet_settings').html().trim());\r
5bed0536 9\r
69ae0848
D
10 // Incase any settings change while we have this open, update them\r
11 _kiwi.global.settings.on('change', this.loadSettings, this);\r
12\r
13 // Now actually show the current settings\r
14 this.loadSettings();\r
da848c4f
D
15\r
16\r
69ae0848 17 },\r
69ae0848
D
18\r
19 loadSettings: function () {\r
20 var settings = _kiwi.global.settings;\r
21\r
039a3156
D
22 // TODO: Tidy this up\r
23 var theme = settings.get('theme') || 'relaxed';\r
24 this.$el.find('.setting-theme option').filter(function() {\r
25 return $(this).val() === theme;\r
0935901c 26 }).prop('selected', true);\r
039a3156
D
27\r
28 var list_style = settings.get('channel_list_style') || 'tabs';\r
29 this.$el.find('.setting-channel_list_style option').filter(function() {\r
30 return $(this).val() === list_style;\r
0935901c 31 }).prop('selected', true);\r
039a3156 32\r
69ae0848 33 this.$el.find('.setting-scrollback').val(settings.get('scrollback') || '250');\r
ddd74e86
D
34\r
35 if (typeof settings.get('show_joins_parts') === 'undefined' || settings.get('show_joins_parts')) {\r
0935901c 36 this.$el.find('.setting-show_joins_parts').prop('checked', true);\r
ddd74e86 37 } else {\r
0935901c 38 this.$el.find('.setting-show_joins_parts').prop('checked', false);\r
ddd74e86 39 }\r
2bbb5225
D
40\r
41 if (typeof settings.get('show_timestamps') === 'undefined' || !settings.get('show_timestamps')) {\r
0935901c 42 this.$el.find('.setting-show_timestamps').prop('checked', false);\r
2bbb5225 43 } else {\r
0935901c 44 this.$el.find('.setting-show_timestamps').prop('checked', true);\r
2bbb5225 45 }\r
b2f25f45
D
46\r
47 if (typeof settings.get('mute_sounds') === 'undefined' || settings.get('mute_sounds')) {\r
0935901c 48 this.$el.find('.setting-mute_sounds').prop('checked', true);\r
b2f25f45 49 } else {\r
0935901c 50 this.$el.find('.setting-mute_sounds').prop('checked', false);\r
b2f25f45 51 }\r
4baeda09 52 },\r
69ae0848
D
53\r
54\r
4baeda09 55 saveSettings: function () {\r
18aaad59
JA
56 var settings = _kiwi.global.settings,\r
57 feedback;\r
19cc6364 58\r
039a3156 59 // Stop settings being updated while we're saving one by one\r
1cfc4800 60 settings.off('change', this.loadSettings, this);\r
039a3156 61\r
93fa049c 62 settings.set('theme', $('.setting-theme', this.$el).val());\r
039a3156 63 settings.set('channel_list_style', $('.setting-channel_list_style', this.$el).val());\r
93fa049c 64 settings.set('scrollback', $('.setting-scrollback', this.$el).val());\r
ddd74e86 65 settings.set('show_joins_parts', $('.setting-show_joins_parts', this.$el).is(':checked'));\r
2bbb5225 66 settings.set('show_timestamps', $('.setting-show_timestamps', this.$el).is(':checked'));\r
b2f25f45 67 settings.set('mute_sounds', $('.setting-mute_sounds', this.$el).is(':checked'));\r
19cc6364 68\r
5bed0536 69 settings.save();\r
039a3156 70\r
18aaad59
JA
71 feedback = $('.feedback', this.$el);\r
72 feedback.fadeIn('slow', function () {\r
73 feedback.fadeOut('slow');\r
1cfc4800 74 });\r
18aaad59 75\r
039a3156 76 // Continue listening for setting changes\r
1cfc4800 77 settings.on('change', this.loadSettings, this);\r
4baeda09
D
78 }\r
79 });\r
80\r
81\r
82\r
da848c4f 83 var Applet = Backbone.Model.extend({\r
4baeda09
D
84 initialize: function () {\r
85 this.set('title', 'Settings');\r
86 this.view = new View();\r
4baeda09
D
87 }\r
88 });\r
da848c4f
D
89\r
90\r
91 _kiwi.model.Applet.register('kiwi_settings', Applet);\r
4baeda09 92})();