Client: Apply default settings before applying any others
[KiwiIRC.git] / client / assets / src / models / application.js
index a3be59caf09513592a96066beb8a7c29a7ec9b35..c2bf0fea4201650d6abdd2ee1da202c6adc9b69f 100644 (file)
@@ -31,6 +31,11 @@ _kiwi.model.Application = function () {
 \r
             // Takes instances of model_network\r
             this.connections = new _kiwi.model.NetworkPanelList();\r
+\r
+            // Set any default settings before anything else is applied\r
+            if (this.server_settings && this.server_settings.client && this.server_settings.client.settings) {\r
+                this.applyDefaultClientSettings(this.server_settings.client.settings);\r
+            }\r
         };\r
 \r
 \r
@@ -48,7 +53,6 @@ _kiwi.model.Application = function () {
 \r
             this.initializeClient();\r
             this.initializeGlobals();\r
-            this.applyDefaultClientSettings(this.server_settings.client.settings);\r
 \r
             this.view.barsHide(true);\r
 \r
@@ -180,6 +184,9 @@ _kiwi.model.Application = function () {
 \r
                 if (this.server_settings.client.channel)\r
                     defaults.channel = this.server_settings.client.channel;\r
+\r
+                if (this.server_settings.client.channel_key)\r
+                    defaults.channel_key = this.server_settings.client.channel_key;\r
             }\r
 \r
 \r
@@ -284,6 +291,10 @@ _kiwi.model.Application = function () {
                     defaults.channel = this.server_settings.connection.channel;\r
                 }\r
 \r
+                if (this.server_settings.connection.channel_key) {\r
+                    defaults.channel_key = this.server_settings.connection.channel_key;\r
+                }\r
+\r
                 if (this.server_settings.connection.nick) {\r
                     defaults.nick = this.server_settings.connection.nick;\r
                 }\r
@@ -461,6 +472,7 @@ _kiwi.model.Application = function () {
 \r
             controlbox.on('command:whowas', whowasCommand);\r
 \r
+            controlbox.on('command:encoding', encodingCommand);\r
 \r
             controlbox.on('command:css', function (ev) {\r
                 var queryString = '?reload=' + new Date().getTime();\r
@@ -789,6 +801,20 @@ _kiwi.model.Application = function () {
                 _kiwi.app.connections.active_connection.gateway.raw('WHOWAS ' + nick);\r
         }\r
 \r
+        function encodingCommand (ev) {\r
+            if (ev.params[0]) {\r
+                _kiwi.gateway.setEncoding(null, ev.params[0], function (success) {\r
+                    if (success) {\r
+                        _kiwi.app.panels().active.addMsg('', "Encoding modified to "+ev.params[0]);\r
+                    } else {\r
+                        _kiwi.app.panels().active.addMsg('', ev.params[0]+' is not a valid encoding');\r
+                    }\r
+                });\r
+            } else {\r
+                _kiwi.app.panels().active.addMsg('', 'Encoding not specified');\r
+                _kiwi.app.panels().active.addMsg('', 'Usage: /encoding [NEW-ENCODING]');\r
+            }\r
+        }\r
 \r
         function serverCommand (ev) {\r
             var server, port, ssl, password, nick,\r