From 674d625150f2761ed4dd62e5a8be8652c371e4e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Wed, 6 Jul 2016 13:13:09 +0200 Subject: [PATCH] Transfer query & fragment on intermediary page reload Also user window.location.reload if URL to reload is the same as the current one, otherwise reloading will be a no-op if a fragment is provided. (cherry picked from commit a367902) --- src/octoprint/static/intermediary.html | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/octoprint/static/intermediary.html b/src/octoprint/static/intermediary.html index 3cdfb3ce..ee37e790 100644 --- a/src/octoprint/static/intermediary.html +++ b/src/octoprint/static/intermediary.html @@ -136,21 +136,22 @@ var timeout = 1500; var baseUrl = window.location.href; - var reloadUrl = window.location.href; + var currentQuery = ""; + var currentFragment = ""; + if (baseUrl.indexOf("#") > -1) { + currentFragment = baseUrl.substring(baseUrl.indexOf("#")); baseUrl = baseUrl.substring(0, baseUrl.indexOf("#")); - reloadUrl = baseUrl; } if (baseUrl.indexOf("?") > -1) { + currentQuery = baseUrl.substring(baseUrl.indexOf("?")); baseUrl = baseUrl.substring(0, baseUrl.indexOf("?")); } if (baseUrl.indexOf("/static") > -1) { baseUrl = baseUrl.substring(0, baseUrl.indexOf("/static")); - reloadUrl = baseUrl; } if (baseUrl[baseUrl.length - 1] != "/") { baseUrl += "/"; - reloadUrl = baseUrl; } var serverOnlineUrl = baseUrl + "online.gif"; var backendOnlineUrl = baseUrl + "intermediary.gif"; @@ -166,7 +167,13 @@ serverIsOnline = true; message.className = "pulsate1 green"; message.innerText = "OctoPrint server online, reloading page..."; - window.location = reloadUrl; + + var reloadUrl = baseUrl + currentQuery + currentFragment; + if (reloadUrl == window.location.href) { + window.location.reload(false); + } else { + window.location.href = reloadUrl; + } } else { // online.gif still not available, let's look at var interval = 15;