c3a239aa11cde08e85f3235b3e47861a507215cc
chmalee
  Thu Aug 1 13:34:53 2024 -0700
Add a configure page option for controlling whether hgc clicks open in pop-ups, refs #33216

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index 08ec38b..6e7d395 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -9689,31 +9689,32 @@
 cartSaveSession(cart);
 hPrintf("</FORM>\n");
 
 // this is the form for the disconnect hub button
 hPrintf("<FORM ACTION=\"%s\" NAME=\"disconnectHubForm\">\n",  "../cgi-bin/hgTracks");
 cgiMakeHiddenVar("hubId", "");
 cgiMakeHiddenVar(hgHubDoDisconnect, "on");
 cgiMakeHiddenVar(hgHubConnectRemakeTrackHub, "on");
 cartSaveSession(cart);
 puts("</FORM>");
 
 // put the track download interface behind hg.conf control
 if (cfgOptionBooleanDefault("showMouseovers", FALSE))
     jsInline("var showMouseovers = true;\n");
 
-if (cfgOptionBooleanDefault("doHgcInPopUp", FALSE))
+// if the configure page allows hgc popups tell the javascript about it
+if (cfgOptionBooleanDefault("canDoHgcInPopUp", FALSE) && cartUsualBoolean(cart, "doHgcInPopUp", TRUE))
     jsInline("var doHgcInPopUp = true;\n");
 
 // TODO GALT nothing to do here.
 pruneRedundantCartVis(trackList);
 if (measureTiming)
     measureTime("Done with trackForm");
 }
 
 static void toggleRevCmplDisp()
 /* toggle the reverse complement display mode */
 {
 // forces complement bases to match display
 revCmplDisp = !revCmplDisp;
 cartSetBooleanDb(cart, database, REV_CMPL_DISP, revCmplDisp);
 cartSetBooleanDb(cart, database, COMPLEMENT_BASES_VAR, revCmplDisp);
@@ -11390,31 +11391,31 @@
                 jsInline("var userLoggedIn = true;");
             // if the CGI variable startTutorial=true is present (in that exact
             // spelling/case), immediately start the tutorial, for example
             // when the user clicks a link from a help page. Note that this
             // means it is a one time link that won't work on refresh because
             // the variable isn't saved onto the URL
             if (sameOk(cgiOptionalString("startTutorial"), "true"))
                 {
                 jsInline("var startTutorialOnLoad = true;");
                 }
             }
         }
 
     hPrintf("<div id='hgTrackUiDialog' style='display: none'></div>\n");
     hPrintf("<div id='hgTracksDialog' style='display: none'></div>\n");
-    if (cfgOptionBooleanDefault("doHgcInPopUp", FALSE))
+    if (cfgOptionBooleanDefault("canDoHgcInPopUp", FALSE))
         {
         jsIncludeFile("hgc.js", NULL);
         hPrintf("<div id='hgcDialog' style='display: none'></div>\n");
         }
 
     cartFlushHubWarnings();
     }
 
 
 if (cartVarExists(cart, "chromInfoPage"))
     {
     cartRemove(cart, "chromInfoPage");
     chromInfoPage();
     }
 else if (differentString(cartUsualString(cart, TRACK_SEARCH,"0"),"0"))