From 31095d84f2b9c087bfe01c67aa867388ead3feb6 Mon Sep 17 00:00:00 2001
From: "Mark M. Florida" <markflorida@wustl.edu>
Date: Mon, 8 Aug 2016 17:51:11 -0500
Subject: [PATCH] XNAT-4454: Existing and new query string parameters are now
 properly merged (also added some comments to NoMenuTop.vm to help identify it
 when debugging in the browser)

---
 src/main/webapp/scripts/xnat/url.js                     | 6 ++++--
 src/main/webapp/xdat-templates/navigations/NoMenuTop.vm | 7 ++++++-
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/main/webapp/scripts/xnat/url.js b/src/main/webapp/scripts/xnat/url.js
index 2b180a95..07282412 100644
--- a/src/main/webapp/scripts/xnat/url.js
+++ b/src/main/webapp/scripts/xnat/url.js
@@ -352,10 +352,12 @@ var XNAT = getObject(XNAT||{});
         // ['format=json','sort=asc'], or
         // { format: 'json', sort: 'asc' }
 
+        var urlParts = XNAT.url.splitUrl(url);
+
         // need to get a query object first
         // so we can add the XNAT_CSRF and
         // XNAT_XHR params to the end
-        params = (params) ? XNAT.url.toQueryObject(params) : {};
+        params = extend(urlParts.params, XNAT.url.toQueryObject(params));
 
         if ((window.csrfToken || XNAT.csrfToken) && (isTrue(csrf))) {
             params.XNAT_CSRF = (window.csrfToken || XNAT.csrfToken);
@@ -369,7 +371,7 @@ var XNAT = getObject(XNAT||{});
             }
         }
 
-        return urlSetup(url, '', params);
+        return urlSetup(urlParts.base, '', params, urlParts.hash);
 
     };
 
diff --git a/src/main/webapp/xdat-templates/navigations/NoMenuTop.vm b/src/main/webapp/xdat-templates/navigations/NoMenuTop.vm
index 448e58b4..7a74e4c5 100644
--- a/src/main/webapp/xdat-templates/navigations/NoMenuTop.vm
+++ b/src/main/webapp/xdat-templates/navigations/NoMenuTop.vm
@@ -5,6 +5,7 @@
 #* @vtlvariable name="user" type="org.nrg.xft.security.UserI" *#
 #* @vtlvariable name="ui" type="org.apache.turbine.services.pull.util.UIManager" *#
 #* @vtlvariable name="link" type="org.apache.turbine.services.pull.tools.TemplateLink" *#
+<!-- BEGIN NoMenuTop.vm -->
 $page.setBgColor($ui.bgcolor)
 
 <div id="user_bar" class="no_menu">
@@ -18,7 +19,10 @@ $page.setBgColor($ui.bgcolor)
         #elseif($username)
         ## use default timout value from web.xml as the starting text in the "timeLeft" element
             <span id="user_info">Logged in as: &nbsp;<a href="$link.setPage("XDATScreen_UpdateUser.vm")">$!username</a> <b>|</b> <a href="$link.setAction("LogoutUser")">Logout</a></span>
-		#end
+            <script>
+                window.loggedIn = true;
+            </script>
+        #end
 	#end
     <div class="clear"></div>
 </div><!-- /user_bar -->
@@ -30,3 +34,4 @@ $page.setBgColor($ui.bgcolor)
         #parse("/screens/Logo.vm")
     </a>
 </div></div>
+<!-- END NoMenuTop.vm -->
-- 
GitLab