7f7a44a19ff9a54dbaf894365d30e394e802024b
chmalee
  Wed Dec 17 12:15:31 2025 -0800
Do not show 'visible tracks' group unless there are more than 32 top level tracks, refs Hiram complaint

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index dac676cdcd0..13cab3492e6 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -9721,30 +9721,31 @@
                            "return vis.expandAllGroups(false)");
         hPrintf("</td>");
 
         hPrintf("<td colspan='%d' class='controlButtons' align='CENTER' nowrap>\n", MAX_CONTROL_COLUMNS - 2);
 
         printShortcutButtons(cart, hasCustomTracks, revCmplDisp, multiRegionButtonTop);
         hPrintf("</td>\n");
 
         hPrintf("<td align='right'>");
         hButtonWithOnClick("hgt.expandGroups", "Expand all", "Expand all track groups",
                            "return vis.expandAllGroups(true)");
         hPrintf("</td></tr>");
 
         cg = startControlGrid(MAX_CONTROL_COLUMNS, "left");
         struct hash *superHash = hashNew(8);
+        long trackCount = 0;
 	for (group = groupList; group != NULL; group = group->next)
 	    {
 	    if ((group->trackList == NULL) && (group->errMessage == NULL))
 		continue;
 
 	    struct trackRef *tr;
 
 	    /* check if group section should be displayed */
 	    char *otherState;
 	    char *indicator;
 	    char *indicatorImg;
 	    boolean isOpen = !isCollapsedGroup(group);
 	    collapseGroupGoodies(isOpen, TRUE, &indicatorImg,
 				    &indicator, &otherState);
 	    hPrintf("<TR>");
@@ -9904,30 +9905,32 @@
 	    /* Display track controls */
             if (group->errMessage)
                 {
 		myControlGridStartCell(cg, isOpen, group->name,
                                        shouldBreakAll(group->errMessage));
                 hPrintf("%s", group->errMessage);
 		controlGridEndCell(cg);
                 }
 
 	    for (tr = group->trackList; tr != NULL; tr = tr->next)
 		{
 		struct track *track = tr->track;
 		if (tdbIsSuperTrackChild(track->tdb))
 		    /* don't display supertrack members */
 		    continue;
+                // only top level tracks contribute to the total count
+                trackCount++;
 		myControlGridStartCell(cg, isOpen, group->name,
                                        shouldBreakAll(track->shortLabel));
 
                 printTrackLink(track);
 
 		if (hTrackOnChrom(track->tdb, chromName))
 		    {
 		    if (tdbIsSuper(track->tdb))
 			superTrackDropDown(cart, track->tdb,
 					    superTrackHasVisibleMembers(track->tdb));
 		    else
                         {
                         /* check for option of limiting visibility to one mode */
                         hTvDropDownClassVisOnly(track->track, track->visibility,
                                                 rTdbTreeCanPack(track->tdb),
@@ -9935,30 +9938,41 @@
                                                                               : "normalText",
                                                 trackDbSetting(track->tdb, "onlyVisibility"));
                         }
                     }
 		else
 		    /* If track is not on this chrom print an informational
 		    message for the user. */
 		    hPrintf("[No data-%s]", chromName);
 		controlGridEndCell(cg);
 		}
 
 	    /* now finish out the table */
 	    if (group->next != NULL)
 		controlGridEndRow(cg);
 	    }
+        if (trackCount < 32)
+            {
+            // visible tracks not needed, set to display: none
+            // we have to do this here because we need to account for super tracks
+            // not being in the list until groupTrackListAddSuper has been called
+            jsInline("let visTrs = document.querySelectorAll(\"[id^=visible-]\");\n"
+                    "let prev = visTrs[0].previousSibling;\n"
+                    "visTrs.forEach( (v) => v.style.display = \"none\");\n"
+                    "prev.style.display = \"none\";\n"
+                    );
+            }
         hashFree(&superHash);
 	endControlGrid(&cg);
 
         jsOnEventBySelector(".hgtButtonHideGroup", "click", "onHideAllGroupButtonClick(event)");
 	}
 
     if (measureTiming)
         printTrackTiming();
 
     hPrintf("</DIV>\n");
     }
 if (showTrackControls)
     hButton("hgt.refresh", "Refresh");
 
 if (sameString(database, "wuhCor1"))