16eee40c920d259c10ee345472708d0cc0cc3393 chmalee Tue Mar 3 11:25:23 2026 -0800 Adds an hg.conf defined 'popular' species list to the new search bar as a 'default' list of results upon focus of the search bar. Combines with 'recents' list. Add a chevron next to the search bar so users know the autocomplete has some default options, refs #36232 diff --git src/hg/hgConvert/hgConvert.c src/hg/hgConvert/hgConvert.c index b6c0212324b..44fde6ffc9f 100644 --- src/hg/hgConvert/hgConvert.c +++ src/hg/hgConvert/hgConvert.c @@ -114,31 +114,30 @@ /* Hidden fields for form submission */ hPrintf("<input name='%s' value='%s' type='hidden'>\n", HGLFT_TOORG_VAR, toDb->organism); hPrintf("<input name='%s' value='%s' type='hidden'>\n", HGLFT_TODB_VAR, liftOver->toDb); /* Search bar */ char *searchBarId = "toGenomeSearch"; puts("<div class='fieldRow'>\n"); puts("<span class='fieldLabel'>Search:</span>\n"); printGenomeSearchBar(searchBarId, "Search for target genome...", NULL, TRUE, NULL, NULL); puts("</div>\n"); /* Current selection display */ char *selectedLabel = getCurrentGenomeLabel(liftOver->toDb); hPrintf("<div class='currentSelection' id='toGenomeLabel'>%s</div>\n", selectedLabel); - /* Assembly dropdown (updates based on genome selection) */ puts("<div class='fieldRow'>\n"); puts("<span class='fieldLabel'>Assembly:</span>\n"); dbList = hGetLiftOverToDatabases(liftOver->fromDb); printAllAssemblyListHtmlParm(liftOver->toDb, dbList, HGLFT_TODB_VAR, TRUE, "change", onChangeToOrg); puts("</div>\n"); /* QuickLift option */ if (askAboutQuickLift) { puts("<div class='fieldRow' style='margin-top: 15px;'>\n"); cgiMakeCheckBoxWithId("doQuickLift", quickLift, "doQuickLift"); puts(" <label for='doQuickLift'>QuickLift tracks</label>\n"); puts(" <a href='https://docs.google.com/document/d/1wecESHUpgTlE6U_Mj0OnfHeSZBrTX9hkZRN5jlJS8ZQ/edit?usp=sharing' " "target='ucscHelp' title='QuickLift is in beta testing' " @@ -196,35 +195,54 @@ " document.mainForm.submit();\n" " }\n" "\n" " let selectEle = document.getElementById('toGenomeLabel');\n" " initSpeciesAutoCompleteDropdown('%s', onGenomeSelect.bind(null, selectEle), null, null, processAndFilterResults, onSearchError);\n" " });\n" "\n" "document.addEventListener('DOMContentLoaded', () => {\n" " let btn = document.getElementById('%sButton');\n" " if (btn) {\n" " btn.addEventListener('click', () => {\n" " let val = document.getElementById('%s').value;\n" " $('[id=\\x27%s\\x27]').autocompleteCat('search', val);\n" " });\n" " }\n" + " let toggle = document.getElementById('%sToggle');\n" + " if (toggle) {\n" + " let wasOpen = false;\n" + " toggle.addEventListener('mousedown', () => {\n" + " let $input = $('[id=\\x27%s\\x27]');\n" + " wasOpen = $input.autocompleteCat('widget').is(':visible');\n" + " });\n" + " toggle.addEventListener('click', () => {\n" + " let $input = $('[id=\\x27%s\\x27]');\n" + " if (wasOpen) {\n" + " $input.autocompleteCat('close');\n" + " } else {\n" + " $input.val('');\n" + " $input.autocompleteCat('search', '');\n" + " $input.focus();\n" + " }\n" + " });\n" + " }\n" "});\n" , liftOver->fromDb , HGLFT_TOORG_VAR , HGLFT_TODB_VAR , searchBarId, searchBarId, searchBarId, searchBarId + , searchBarId, searchBarId, searchBarId ); puts("</FORM>\n"); cartWebEnd(); } static double scoreLiftOverChain(struct liftOverChain *chain, char *fromOrg, char *fromDb, char *toOrg, char *toDb, struct hash *dbRank ) /* Score the chain in terms of best match for cart settings */ { double score = 0; char *chainFromOrg = hOrganism(chain->fromDb); char *chainToOrg = hOrganism(chain->toDb);