11d274be1e5b4364f49fc810ece1f197eddf0ef8
max
  Fri Dec 9 05:02:05 2022 -0800
adding option for QA to show any random piece of html on hgTracks, refs #30376

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index 800a24f..7bada44 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -8935,30 +8935,36 @@
                 dbTopLinkLabel = cfgOption(name);
             }
         if (dbTopLink && dbTopLinkLabel)
             {
             hPrintf("&nbsp;&nbsp;<a href='%s' target='_blank'><em><b>%s</em></b></a>\n",
                 dbTopLink, dbTopLinkLabel);
             }
         
         // generic link
 	char *survey = cfgOptionEnv("HGDB_SURVEY", "survey");
 	char *surveyLabel = cfgOptionEnv("HGDB_SURVEY_LABEL", "surveyLabel");
 	if (survey && differentWord(survey, "off"))
             hPrintf("&nbsp;&nbsp;<span style='background-color:yellow;'>"
                     "<A HREF='%s' TARGET=_BLANK><EM><B>%s</EM></B></A></span>\n",
                     survey, surveyLabel ? surveyLabel : "Take survey");
+
+        // a piece of HTML, can be a link or anything else
+	char *hgTracksNoteHtml = cfgOption("hgTracksNoteHtml");
+	if (hgTracksNoteHtml)
+            puts(hgTracksNoteHtml);
+
 	hPutc('\n');
 	}
     }
 
 // TODO GALT  how to handle ideos?
 boolean nukeIdeoFromList = FALSE;
 for(window=windows;window;window=window->next)
     {
     setGlobalsFromWindow(window);
 
     if (window == windows) // first window
 	{	
 	/* Make chromosome ideogram gif and map. */
 	nukeIdeoFromList = makeChromIdeoImage(&trackList, psOutput, ideoTn);
 	window->trackList = trackList;  // the variable may have been updated.
@@ -10928,30 +10934,32 @@
     jsIncludeFile("mousetrap.min.js", NULL);
     jsIncludeFile("jquery.js", NULL);
     jsIncludeFile("jquery-ui.js", NULL);
     jsIncludeFile("utils.js", NULL);
     jsIncludeFile("ajax.js", NULL);
     jsIncludeFile("jquery.watermarkinput.js", NULL);
     if(!searching)
         {
         jsIncludeFile("jquery.history.js", NULL);
         jsIncludeFile("jquery.imgareaselect.js", NULL);
         }
     jsIncludeFile("autocomplete.js", NULL);
     jsIncludeFile("es5-shim.4.0.3.min.js", NULL);
     jsIncludeFile("es5-sham.4.0.3.min.js", NULL);
     jsIncludeFile("lodash.3.10.0.compat.min.js", NULL);
+    jsIncludeFile("popper.min.js", NULL);
+    jsIncludeFile("tippy-bundle.umd.js", NULL);
     jsIncludeFile("autocompleteCat.js", NULL);
     jsIncludeFile("hgTracks.js", NULL);
     jsIncludeFile("spectrum.min.js", NULL);
 
 #ifdef LOWELAB
     jsIncludeFile("lowetooltip.js", NULL);
 #endif///def LOWELAB
 
     webIncludeResourceFile("spectrum.min.css");
     webIncludeResourceFile("jquery-ui.css");
     if (enableMouseOver)
       webIncludeResourceFile("mouseOver.css");
 
     if (!searching)     // NOT doing search
         {