8ccceea1c52492b6a869af8de3190a387d4b6550
braney
  Tue Mar 12 13:41:09 2024 -0700
added exportedDataHubs dialog and code to deal with quickLifted hubs

diff --git src/hg/hgTracks/menu.c src/hg/hgTracks/menu.c
index dbc19a1..5cb42fc 100644
--- src/hg/hgTracks/menu.c
+++ src/hg/hgTracks/menu.c
@@ -7,30 +7,31 @@
 #include "dystring.h"
 #include "ensFace.h"
 #include "agpFrag.h"
 #include "ctgPos.h"
 #include "hCommon.h"
 #include "htmshell.h"
 #include "hash.h"
 #include "wikiLink.h"
 #include "web.h"
 #include "geoMirror.h"
 #include "hgTracks.h"
 #include "trackHub.h"
 #include "extTools.h"
 #include "trackVersion.h"
 #include "chromAlias.h"
+#include "exportedDataHubs.h"
 
 /* list of links to display in a menu */
 /* a link with an empty name is displayed as a horizontal separator line */
 struct hotLink
     {
     struct hotLink *next;
     char *name;
     char *url;
     char *id;
     char *mouseOver;
     char *onClick;
     char *shortcut;
     boolean inactive; /* greyed out */
     boolean external;
     };
@@ -237,30 +238,40 @@
 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));
     if (stringIn(recTrackSetsMenuItemId, menuStr))
         jsOnEventById("click", recTrackSetsMenuItemId, "showRecTrackSetsPopup(); return false;");
     }
+if (exportedDataHubsEnabled())
+    {
+    #define exportedDataHubsMenuItemId     "exportedDataHubsMenuItem"
+    struct dyString *menuItemDs = dyStringCreate("<li><a href='#' id='%s'>Exported Data Hubs</a></li>",
+                                       exportedDataHubsMenuItemId);
+    menuStr = replaceChars(menuStr, "<!-- OPTIONAL_EXPORTED_TRACK_DATA_HUBS_MENU -->", 
+                                dyStringCannibalize(&menuItemDs));
+    if (stringIn(exportedDataHubsMenuItemId, menuStr))
+        jsOnEventById("click", exportedDataHubsMenuItemId, "showExportedDataHubsPopup(); return false;");
+    }
 
 // Create top items in view menu
 safef(buf, sizeof(buf), "../cgi-bin/hgTracks?%s&hgt.psOutput=on", uiVars);
 appendLink(&links, buf, "PDF", "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);