fccc494337013c07d32c506fec1ae07a5b93ff88
braney
  Sun Oct 23 17:00:03 2022 -0700
deal with curated assemblies in hgSearch

diff --git src/hg/js/hgSearch.js src/hg/js/hgSearch.js
index 0d4162d..2676486 100644
--- src/hg/js/hgSearch.js
+++ src/hg/js/hgSearch.js
@@ -619,54 +619,60 @@
             parentDiv.empty();
             parentDiv.html(msg);
             clearOldFacetCounts();
         } else {
             parentDiv.empty();
         }
     }
 
     function fillOutAssemblies(e) {
         organism = $("#speciesSelect")[0].value;
         select = $("#dbSelect");
         select.empty();
         _.each(_.sortBy(uiState.genomes[organism], ['orderKey']), function(assembly) {
             newOpt = document.createElement("option");
             newOpt.value = assembly.name;
-            newOpt.label = assembly.organism + " " + assembly.description;
+            newOpt.label = trackHubSkipHubName(assembly.organism) + " " + assembly.description;
             if (assembly.name == db) {
                 newOpt.selected = true;
             }
             $("#dbSelect").append(newOpt);
         });
         // if we are getting here from a change event on the species dropdown
         // and are switching to the default assembly for a species, we can
         // automatically send a search for this organism+assembly
         if (e !== undefined) {
             switchAssemblies($("#dbSelect")[0].value);
         }
     }
 
     function buildSpeciesDropdown() {
         // Process the species select dropdowns
         _.each(uiState.genomes, function(genome) {
             newOpt = document.createElement("option");
             newOpt.value = genome[0].organism;
-            newOpt.label = genome[0].organism;
+            newOpt.label = trackHubSkipHubName(genome[0].organism);
             if (genome.some(function(assembly) {
+                if (assembly.isCurated) {
+                    if (assembly.name === trackHubSkipHubName(db)) {
+                        return true;
+                    }
+                } else {
                     if (assembly.name === db) {
                         return true;
                     }
+                }
             })) {
                 newOpt.selected = true;
             }
             $("#speciesSelect").append(newOpt);
         });
     }
 
     function changeSearchResultsLabel() {
         // change the title to indicate what assembly was search:
         $("#dbPlaceholder").empty();
         $("#dbPlaceholder").append("on " + db + " (" + $("#dbSelect")[0].selectedOptions[0].label+ ")");
     }
 
     function checkJsonData(jsonData, callerName) {
         // Return true if jsonData isn't empty and doesn't contain an error;
@@ -752,36 +758,33 @@
             _.assign(uiState, {"search": searchTerm});
             cart.send({ getSearchResults:
                         {
                         db: db,
                         search: searchTerm
                         }
                     },
                     handleRefreshState,
                     handleErrorState);
             // always update the results when a search has happened
             cart.flush();
         }
     }
 
     function switchAssemblies(newDb) {
-        // get the new uiState, or look it up if we've already seen it
-        db = newDb;
-        cart.send({ getUiState: {db: db} }, handleRefreshState);
-        cart.flush();
-        // make changing the database automatically fire off a search
-        sendUserSearch();
+        // reload the page to attach curated hub (if any)
+        re = /db=[\w,\.]*/;
+        window.location = window.location.href.replace(re,"db="+newDb);
     }
 
     function init() {
         cart.setCgi('hgSearch');
         cart.debug(debugCartJson);
         // If a user clicks search before the page has finished loading
         // start processing it now:
         $("#searchBarSearchButton").click(sendUserSearch);
         if (typeof cartJson !== "undefined") {
             if (cartJson.db !== undefined) {
                 db = cartJson.db;
             } else {
                 alert("Error no database from request");
             }
             var urlParts = {};