From 1cfc4800110c3a7d01b3bd039623fa5630ef3c6a Mon Sep 17 00:00:00 2001 From: Jack Allnutt Date: Sat, 1 Jun 2013 20:43:04 +0100 Subject: [PATCH] Allow default client settings to be configurable Also, a few misc code style changes in the settings applet --- client/assets/src/applets/settings.js | 7 +++---- client/assets/src/models/application.js | 11 +++++++++++ config.example.js | 10 +++++++++- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/client/assets/src/applets/settings.js b/client/assets/src/applets/settings.js index 4f4b385..f1ac614 100644 --- a/client/assets/src/applets/settings.js +++ b/client/assets/src/applets/settings.js @@ -15,7 +15,6 @@ }, - loadSettings: function () { var settings = _kiwi.global.settings; @@ -58,7 +57,7 @@ feedback; // Stop settings being updated while we're saving one by one - _kiwi.global.settings.off('change', this.loadSettings, this); + settings.off('change', this.loadSettings, this); settings.set('theme', $('.setting-theme', this.$el).val()); settings.set('channel_list_style', $('.setting-channel_list_style', this.$el).val()); @@ -72,10 +71,10 @@ feedback = $('.feedback', this.$el); feedback.fadeIn('slow', function () { feedback.fadeOut('slow'); - }) + }); // Continue listening for setting changes - _kiwi.global.settings.on('change', this.loadSettings, this); + settings.on('change', this.loadSettings, this); } }); diff --git a/client/assets/src/models/application.js b/client/assets/src/models/application.js index 28c0917..84d8c80 100644 --- a/client/assets/src/models/application.js +++ b/client/assets/src/models/application.js @@ -48,6 +48,7 @@ _kiwi.model.Application = function () { this.initializeClient(); this.initializeGlobals(); + this.applyDefaultClientSettings(this.server_settings.client.settings); this.view.barsHide(true); @@ -138,6 +139,16 @@ _kiwi.model.Application = function () { }; + this.applyDefaultClientSettings = function (settings) { + _.each(settings, function (value, setting) { + if (typeof _kiwi.global.settings.get(setting) === 'undefined') { + _kiwi.global.settings.set(setting, value); + } + }); + _kiwi.global.settings.save(); + }; + + this.populateDefaultServerSettings = function (new_connection_dialog) { var parts; var defaults = { diff --git a/config.example.js b/config.example.js index 674f8f9..9732497 100644 --- a/config.example.js +++ b/config.example.js @@ -170,7 +170,15 @@ conf.client = { port: 6697, ssl: true, channel: '#kiwiirc', - nick: 'kiwi_?' + nick: 'kiwi_?', + settings: { + theme: 'relaxed', + channel_list_style: 'tabs', + scrollback: 250, + show_joins_parts: true, + show_timestamps: false, + mute_sounds: false + } }; -- 2.25.1