47ea57080b515e5dad5f658c58feb8944a7e7d61
chmalee
  Thu Jan 29 15:30:26 2026 -0800
Replace clade/assembly dropdowns with a search bar on most CGIs. Add a recents list to hgGateway and to the species bar and to the 'Genomes' dropdown menu. Track recently selected species in localStorage. Add toGenome and fromGenome arguemnts to hubApi/liftOver in order to find appropriate liftover assemblies, refs #36232

diff --git src/hg/hgIntegrator/hgIntegrator.c src/hg/hgIntegrator/hgIntegrator.c
index 220fac5851e..2276bfd5cb6 100644
--- src/hg/hgIntegrator/hgIntegrator.c
+++ src/hg/hgIntegrator/hgIntegrator.c
@@ -936,30 +936,31 @@
 puts("<link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css\">");
 
 puts("<div id=\"appContainer\">Loading...</div>");
 
 // Set a global JS variable hgsid.
 // Plain old "var ..." doesn't work (other scripts can't see it), it has to belong to window.
 char javascript[1024];
 safef(javascript, sizeof javascript,
     "window.%s='%s';\n", cartSessionVarName(), cartSessionId(cart));
 // jsInline(javascript);  // GALT TODO would prefer inline, but lack of global early causes issues.
 printf("<script type='text/javascript' nonce='%s'>\n%s</script>\n", getNonce(), javascript);
 
 jsIncludeReactLibs();
 jsIncludeFile("reactHgIntegrator.js", NULL);
 jsIncludeFile("hgIntegratorModel.js", NULL);
+jsIncludeFile("autocompleteCat.js", NULL);
 
 // Invisible form for submitting a query
 printf("\n<form action=\"%s\" method=%s id='queryForm'>\n",
        hgIntegratorName(), cartUsualString(cart, "formMethod", "POST"));
 cartSaveSession(cart);
 cgiMakeHiddenVar(QUERY_SPEC, cartUsualString(cart, QUERY_SPEC, ""));
 cgiMakeHiddenVar(DO_QUERY, "go");
 puts("</form>");
 
 // Invisible form for jumping to another CGI
 printf("\n<form method=%s id='jumpForm'>\n", cartUsualString(cart, "formMethod", "GET"));
 cartSaveSession(cart);
 puts("</form>");
 
 webEnd();