From 87efde3721be0a013f9fbf190905e462dbf02c99 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Tue, 27 Nov 2007 22:06:39 +0000 Subject: [PATCH] Monotone-Parent: f344a8f89281014e1cb44ad2830da364e111324e Monotone-Revision: c8525121d7db7aef92d05d9e761787cb3679156c Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-11-27T22:06:39 Monotone-Branch: ca.inverse.sogo --- UI/WebServerResources/SOGoRootPage.js | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/UI/WebServerResources/SOGoRootPage.js b/UI/WebServerResources/SOGoRootPage.js index 7201ce050..d59076ffe 100644 --- a/UI/WebServerResources/SOGoRootPage.js +++ b/UI/WebServerResources/SOGoRootPage.js @@ -34,8 +34,31 @@ function onLoginClick(event) { function onLoginCallback(http) { if (http.readyState == 4) { - if (isHttpStatus204(http.status)) - window.location.href = ApplicationBaseURL + $("userName").value; + if (isHttpStatus204(http.status)) { + var userName = $("userName").value; + var address = "" + window.location.href; + var baseAddress = ApplicationBaseURL + $("userName").value; + var altBaseAddress; + if (baseAddress[0] == "/") { + var parts = address.split("/"); + var hostpart = parts[2]; + var protocol = parts[0]; + baseAddress = protocol + "//" + hostpart + baseAddress; + } + var altBaseAddress; + var parts = baseAddress.split("/"); + parts.splice(3, 0); + altBaseAddress = parts.join("/"); + + var newAddress; + if ((address.startsWith(baseAddress) + || address.startsWith(altBaseAddress)) + && !address.endsWith("/logoff")) + newAddress = address; + else + newAddress = baseAddress; + window.location.href = newAddress; + } } }