1da10945502204574470299154d4e6706c231b4f
jcasper
  Mon Mar 31 10:35:45 2025 -0700
Interact UI has a checkbox to disable the details boxes on interaction lines, refs #30380

diff --git src/hg/lib/interactUi.c src/hg/lib/interactUi.c
index 934ec72451c..f6a9a0fb298 100644
--- src/hg/lib/interactUi.c
+++ src/hg/lib/interactUi.c
@@ -97,30 +97,49 @@
 //printf(" %s ", "no ends in window");
 }
 
 void interactUiDashedLines(struct cart *cart, char *track, struct trackDb *tdb)
 /* Checkbox for dashed lines on interactions in reverse direction */
 {
 if (!interactUiDirectional(tdb))
     return;
 char cartVar[1024];
 safef(cartVar, sizeof cartVar, "%s.%s", tdb->track, INTERACT_DIRECTION_DASHES);
 boolean doDashes = cartCgiUsualBoolean(cart, cartVar, INTERACT_DIRECTION_DASHES_DEFAULT);
 cgiMakeCheckBox(cartVar, doDashes);
 printf("Draw reverse direction interactions with dashed lines");
 }
 
+boolean interactUiShowHgcBoxes(struct trackDb *tdb, struct cart *cart)
+/* Determine whether hgc link boxes should be shown in the image */
+{
+char cartVar[1024];
+safef(cartVar, sizeof cartVar, "%s.%s", tdb->track, INTERACT_NO_HGC_VAR);
+boolean doDashes = cartOrTdbBoolean(cart, tdb, INTERACT_NO_HGC_VAR, TRUE);
+return doDashes;
+}
+
+void interactUiDetailsPageEnabled(struct cart *cart, char *track, struct trackDb *tdb)
+/* UI checkbox for whether hgc links should be provided in boxes on interaction segments */
+{
+char cartVar[1024];
+safef(cartVar, sizeof cartVar, "%s.%s", tdb->track, INTERACT_NO_HGC_VAR);
+boolean doDashes = interactUiShowHgcBoxes(tdb, cart);
+cgiMakeCheckBox(cartVar, doDashes);
+printf("Include details page links (boxes) on interaction lines");
+}
+
 static char *interactClusterDefault(struct trackDb *tdb)
 /* Determine whether to cluster by source or target (or neither if NULL) */
 {
 char *setting = trackDbSetting(tdb, INTERACT_DIRECTIONAL);
 if (setting)
     {
     char *words[8];
     int count = chopByWhite(cloneString(setting), words, ArraySize(words));
     if (count >= 1)
         {
         char *cluster = words[0];
         if (sameString(cluster, INTERACT_TDB_CLUSTER_TARGET))
             return INTERACT_CLUSTER_TARGET;
          if (sameString(cluster, INTERACT_TDB_CLUSTER_SOURCE))
             return INTERACT_CLUSTER_SOURCE;
@@ -169,20 +188,22 @@
         //isPopup ? 75 : 100, boxed ?" width='100%'":"");
 puts("<p>");
 interactUiEndpointFilter(cart, track, tdb);
 puts("</p><p>");
 if (interactUiClusterMode(cart, track, tdb))
     {
     interactUiSelectClusterMode(cart, track, tdb);
     }
 else
     {
     interactUiTrackHeight(cart, track, tdb);
     puts("</p><p>");
     interactUiDrawMode(cart, track, tdb);
     puts("</p><p>");
     interactUiDashedLines(cart, track, tdb);
+    puts("</p><p>");
+    interactUiDetailsPageEnabled(cart, track, tdb);
     puts("</p>");
     }
 scoreCfgUi(database, cart,tdb,track,NULL,1000,FALSE);
 cfgEndBox(boxed);
 }