Serving server defaults via /client/ url
authorDarren <darren@darrenwhitlen.com>
Tue, 2 Oct 2012 16:31:18 +0000 (17:31 +0100)
committerDarren <darren@darrenwhitlen.com>
Tue, 2 Oct 2012 16:31:18 +0000 (17:31 +0100)
client_backbone/dev/model_application.js
client_backbone/index.html
server/http-handler.js

index b34470217f19917a0f3bbbf512998d76536aac52..a78c485eba5beb5e74e59de718ffa6416f2db18e 100755 (executable)
@@ -30,7 +30,7 @@ kiwi.model.Application = Backbone.Model.extend(new (function () {
         if (!getQueryVariable('debug')) {\r
             manageDebug(false);\r
         } else {\r
-            manageDebug(true);\r
+            //manageDebug(true);\r
         }\r
         \r
         // Set the gateway up\r
@@ -106,14 +106,7 @@ kiwi.model.Application = Backbone.Model.extend(new (function () {
         // Rejigg the UI sizes\r
         this.view.doLayout();\r
 \r
-        // Populate the server select box with defaults\r
-        this.panels.server.server_login.populateFields({\r
-            nick: getQueryVariable('nick') || 'kiwi_' + Math.ceil(Math.random() * 10000).toString(),\r
-            server: getQueryVariable('server') || 'irc.kiwiirc.com',\r
-            port: 6667,\r
-            ssl: false,\r
-            channel: window.location.hash || '#test'\r
-        });\r
+        this.populateDefaultServerSettings();\r
     };\r
 \r
 \r
@@ -122,6 +115,43 @@ kiwi.model.Application = Backbone.Model.extend(new (function () {
     };\r
 \r
 \r
+    this.populateDefaultServerSettings = function () {\r
+        var parts;\r
+        var defaults = {\r
+            nick: getQueryVariable('nick') || 'kiwi_' + Math.ceil(Math.random() * 10000).toString(),\r
+            server: 'irc.kiwiirc.com',\r
+            port: 6667,\r
+            ssl: false,\r
+            channel: window.location.hash || '#kiwiirc'\r
+        };\r
+\r
+        // Process the URL part by part, extracting as we go\r
+        parts = window.location.pathname.toString().split('/');\r
+        parts.shift();\r
+\r
+        if (parts.length > 0 && parts[0].toLowerCase() === 'client') {\r
+            parts.shift();\r
+\r
+            if (parts.length > 0 && parts[0]) {\r
+                console.log(3);\r
+                // TODO: Extract the port from this hostname\r
+                defaults.server = parts[0];\r
+                parts.shift();\r
+            }\r
+\r
+            if (parts.length > 0 && parts[0]) {\r
+                defaults.channel = '#' + parts[0];\r
+                parts.shift();\r
+            }\r
+        }\r
+\r
+        // Set any random numbers if needed\r
+        defaults.nick = defaults.nick.replace('?', Math.floor(Math.random() * 100000).toString());\r
+\r
+        // Populate the server select box with defaults\r
+        this.panels.server.server_login.populateFields(defaults);\r
+    };\r
+\r
 \r
     this.bindGatewayCommands = function (gw) {\r
         gw.on('onmotd', function (event) {\r
index b3cd01ed25036a19e09af1bb25b1af609f5de8aa..dc244a65a7ea345248cdc313f1ff853b91820722 100755 (executable)
@@ -2,6 +2,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
+<base href="/" target="_blank">
 
 <title> KiwiIRC </title>
 
index 9beeba46234d2b8e9a3563eb5b688ba83384332e..0393565990d9efc0c566fc3c180d8c8dab7e6382 100755 (executable)
@@ -13,6 +13,11 @@ var StaticFileServer = function (public_html) {
 };
 
 StaticFileServer.prototype.serve = function (request, response) {
+    // Any requests for /client to load the index file
+    if (request.url.match(/^\/client/)) {
+        request.url = '/';
+    }
+
     this.fileServer.serve(request, response, function (err) {
         if (err) {
             response.writeHead(err.status, err.headers);