Merge branch 'ircv3' of https://github.com/M2Ys4U/KiwiIRC into M2Ys4U-ircv3
[KiwiIRC.git] / client / assets / dev / model_application.js
index 338e574761bc940124df2cd380f7bc392533b87e..262383b4567929d8959b194ee9ce6b4a526d2def 100644 (file)
@@ -29,6 +29,9 @@ _kiwi.model.Application = function () {
             // The base url to the kiwi server\r
             this.set('base_path', options[0].base_path ? options[0].base_path : '/kiwi');\r
 \r
+            // Any options sent down from the server\r
+            this.server_settings = options[0].server_settings || {};\r
+\r
             // Best guess at where the kiwi server is\r
             this.detectKiwiServer();\r
         };\r
@@ -130,6 +133,13 @@ _kiwi.model.Application = function () {
 \r
         this.initializeGlobals = function () {\r
             _kiwi.global.control = this.controlbox;\r
+            _kiwi.global.gateway = _kiwi.gateway;\r
+            _kiwi.global.panels = this.panels;\r
+            \r
+            _kiwi.global.components = {\r
+                Applet: _kiwi.model.Applet,\r
+                Panel: _kiwi.model.Panel\r
+            };\r
         };\r
 \r
 \r
@@ -210,6 +220,29 @@ _kiwi.model.Application = function () {
                 }\r
             }\r
 \r
+            // If any settings have been given by the server.. override any auto detected settings\r
+            if (this.server_settings && this.server_settings.connection) {\r
+                if (this.server_settings.connection.server) {\r
+                    defaults.server = this.server_settings.connection.server;\r
+                }\r
+\r
+                if (this.server_settings.connection.port) {\r
+                    defaults.port = this.server_settings.connection.port;\r
+                }\r
+\r
+                if (this.server_settings.connection.ssl) {\r
+                    defaults.ssl = this.server_settings.connection.ssl;\r
+                }\r
+\r
+                if (this.server_settings.connection.channel) {\r
+                    defaults.channel = this.server_settings.connection.channel;\r
+                }\r
+\r
+                if (this.server_settings.connection.nick) {\r
+                    defaults.nick = this.server_settings.connection.nick;\r
+                }\r
+            }\r
+\r
             // Set any random numbers if needed\r
             defaults.nick = defaults.nick.replace('?', Math.floor(Math.random() * 100000).toString());\r
 \r
@@ -606,6 +639,17 @@ _kiwi.model.Application = function () {
                 }\r
             });\r
 \r
+            gw.on('onaway', function (event) {\r
+                $.each(that.panels.models, function (index, panel) {\r
+                    if (!panel.isChannel()) return;\r
+\r
+                    member = panel.get('members').getByNick(event.nick);\r
+                    if (member) {\r
+                        member.set('away', !(!event.trailing));\r
+                    }\r
+                });\r
+            });
+\r
 \r
             gw.on('onlist_start', function (data) {\r
                 if (_kiwi.app.channel_list) {\r