c4f69a770921ab7abea2f19ffab65abdbff8d916
hiram
  Mon Aug 26 10:02:06 2024 -0700
preparing to save history state, get all the URL arguments back into the web browser URL display refs #32596

diff --git src/hg/js/assemblySearch.js src/hg/js/assemblySearch.js
index 055445c..f31b48e 100644
--- src/hg/js/assemblySearch.js
+++ src/hg/js/assemblySearch.js
@@ -76,33 +76,33 @@
     comment = document.getElementById("comment");
     requestSubmitButton = document.getElementById("submitButton");
 
     document.getElementById("modalFeedback").addEventListener("submit", checkForm, false);
     modalInit();
 
     clearButton.addEventListener('click', function() {
         searchInput.value = ''; // Clear the search input field
     });
 
     searchForm.addEventListener('submit', function(event) {
         event.preventDefault(); // Prevent form submission
 
         var searchTerm = document.getElementById('searchBox').value;
         var resultCountLimit = document.getElementById('maxItemsOutput');
-        browserExist = "mayExist";
         var mustExist = document.getElementById('mustExist').checked;
         var notExist = document.getElementById('notExist').checked;
+        browserExist = "mustExist";
         if (mustExist && notExist) {
            browserExist = "mayExist";
         } else if (notExist) {
            browserExist = "notExist";
         }
         var wordMatch = document.querySelector('input[name="wordMatch"]:checked').value;
         makeRequest(searchTerm, browserExist, resultCountLimit.value, wordMatch);
     });
 
     advancedSearchButton.addEventListener('click', function() {
        var advancedSearchOptions = document.getElementById("advancedSearchOptions");
        // I don't know why it is false the first time ?
        if (! advancedSearchOptions.style.display ||
              advancedSearchOptions.style.display === "none") {
           advancedSearchOptions.style.display = "flex";
@@ -473,30 +473,39 @@
         });
       queryString = queryPlus.trimStart();	// remove first space character
       }
     }
 
     // Show the wait spinner
     document.querySelector(".submitContainer").classList.add("loading");
     document.getElementById("loadingSpinner").style.display = "block";
 
     var xhr = new XMLHttpRequest();
     var urlPrefix = "/cgi-bin/hubApi";
     var url = "/findGenome?q=" + encodeURIComponent(queryString);
     url += ";browser=" + browserExist;
     url += ";maxItemsOutput=" + resultLimit;
 
+    var historyUrl = "?q=" + encodeURIComponent(queryString) + ";browser=" + browserExist + ";maxItemsOutput=" + resultLimit;
+    if (debug) {
+       historyUrl += ";debug=1";
+    }
+    if (measureTiming) {
+       historyUrl += ";measureTiming=1";
+    }
+    history.pushState(null, '', historyUrl);
+
     if (debug) {
       var apiUrl = "<a href='" + urlPrefix + url + "' target=_blank>" + url + "</a>";
       document.getElementById("recentAjax").innerHTML = apiUrl;
     }
 
     xhr.open('GET', urlPrefix + url, true);
 
     xhr.onload = function() {
         if (xhr.status === 200) {
             // Hide the wait spinner once the AJAX request is complete
             document.querySelector(".submitContainer").classList.remove("loading");
             document.getElementById("loadingSpinner").style.display = "none";
             enableButtons();
             var data = JSON.parse(xhr.responseText);
 	    populateTableAndInfo(data);