diff --git a/code/html/custom.js b/code/html/custom.js
index b77f1655..4fa568e7 100644
--- a/code/html/custom.js
+++ b/code/html/custom.js
@@ -4,7 +4,8 @@ var maxNetworks;
var maxSchedules;
var messages = [];
var free_size = 0;
-var webhost;
+
+var urls = {};
var numChanged = 0;
var numReboot = 0;
@@ -322,7 +323,7 @@ function doUpgrade() {
$.ajax({
// Your server script to process the upload
- url: webhost + "upgrade",
+ url: urls.upgrade.href,
type: "POST",
// Form data
@@ -466,7 +467,7 @@ function doUpdate() {
}
function doBackup() {
- document.getElementById("downloader").src = webhost + "config";
+ document.getElementById("downloader").src = urls.config.href;
return false;
}
@@ -1291,22 +1292,22 @@ function hasChanged() {
// Init & connect
// -----------------------------------------------------------------------------
-function connect(host) {
+function initUrls(root) {
- if (typeof host === "undefined") {
- host = window.location.href.replace("#", "");
- } else {
- if (host.indexOf("http") !== 0) {
- host = "http://" + host + "/";
- }
- }
- if (host.indexOf("http") !== 0) { return; }
+ var paths = ["ws", "upgrade", "config"];
- webhost = host;
- var wshost = host.replace("http", "ws") + "ws";
+ urls["root"] = root;
+ paths.forEach(function(path) {
+ urls[path] = new URL(path, root);
+ });
+
+ urls.ws.protocol = "ws";
+}
+function connectToURL(url) {
+ initUrls(url);
if (websock) { websock.close(); }
- websock = new WebSocket(wshost);
+ websock = new WebSocket(urls.ws.href);
websock.onmessage = function(evt) {
var data = getJson(evt.data.replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t"));
if (data) {
@@ -1315,6 +1316,20 @@ function connect(host) {
};
}
+function connect(host) {
+
+ if (!host.startsWith("http:") && !host.startsWith("https:")) {
+ host = "http://" + host;
+ }
+
+ connectToURL(new URL(host));
+}
+
+function connectToCurrentURL() {
+ connectToURL(new URL(window.location));
+}
+
+
$(function() {
initMessages();
@@ -1360,6 +1375,6 @@ $(function() {
// don't autoconnect when opening from filesystem
if (window.location.protocol === "file:") { return; }
- connect();
+ connectToCurrentURL();
});