fc3472e7e9978eb81e3ac14e985bf27e5196ab73 kate Fri Jul 24 10:58:01 2020 -0700 Recommended track sets feature. refs #25601 diff --git src/hg/hgTracks/menu.c src/hg/hgTracks/menu.c index c836ee5..23282cb 100644 --- src/hg/hgTracks/menu.c +++ src/hg/hgTracks/menu.c @@ -223,30 +223,43 @@ /* Put up the special menu bar for hgTracks. */ { struct hotLink *links = NULL; struct sqlConnection *conn = NULL; if (!trackHubDatabase(database)) conn = hAllocConn(database); char *menuStr, buf[4096], uiVars[1024]; safef(uiVars, sizeof(uiVars), "%s=%s", cartSessionVarName(), cartSessionId(cart)); menuStr = menuBar(cart, database); /* hide Projects dropdown (just used by static and gateway pages */ menuStr = replaceChars(menuStr, "", "", "OPTIONAL_PROJECT_MENU_END -->"); +// Add Recommended Track Sets to Genome Browser menu (if any for this assembly) +// TODO: consider splitting the recommended track sets config file into separate files by database, +// so we don't need to read file to see whether to add menu item +if (recTrackSetsEnabled() && recTrackSetsForDb()) + { + #define recTrackSetsMenuItemId "recTrackSetsMenuItem" + struct dyString *menuItemDs = dyStringCreate("
  • Recommended Track Sets
  • ", + recTrackSetsMenuItemId); + menuStr = replaceChars(menuStr, "", + dyStringCannibalize(&menuItemDs)); + jsOnEventById("click", recTrackSetsMenuItemId, "showRecTrackSetsPopup(); return false;"); + } + // Create top items in view menu safef(buf, sizeof(buf), "../cgi-bin/hgTracks?%s&hgt.psOutput=on", uiVars); appendLink(&links, buf, "PDF/PS", "pdfLink", FALSE); safef(buf, sizeof(buf), "%s&o=%d&g=getDna&i=mixed&c=%s&l=%d&r=%d&db=%s&%s", hgcNameAndSettings(), winStart, chromName, winStart, winEnd, database, uiVars); //appendLink(&links, buf, "DNA", "dnaLink", FALSE); appendLinkWithShortcut(&links, buf, "DNA", "dnaLink", "Show DNA sequence in view", "v d", FALSE, FALSE); safef(buf, sizeof(buf), "../cgi-bin/hgConvert?hgsid=%s&db=%s", cartSessionId(cart), database); appendLink(&links, buf, "In Other Genomes (Convert)", "convertMenuLink", FALSE); // add the sendTo menu if (fileExists("extTools.ra")) { appendLinkWithOnclick(&links, "#", "In External Tools", "extToolLink", "Show current sequence on a third-party website", "showExtToolDialog(); return false;", "s t", FALSE, FALSE); }