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_START -->", "<!-- OPTIONAL_PROJECT_MENU_START");
 menuStr = replaceChars(menuStr, "<!--OPTIONAL_PROJECT_MENU_END -->", "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("<li><a href='#' id='%s'>Recommended Track Sets</a></li>",
+                                       recTrackSetsMenuItemId);
+    menuStr = replaceChars(menuStr, "<!-- OPTIONAL_RECOMMENDED_TRACK_SETS_MENU -->", 
+                                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);
     }