d430ed42b69dc955443169c3ea4f4157ff66fe84
braney
  Thu Dec 4 10:50:24 2025 -0800
get default hidden hgGene sections to open properly

diff --git src/hg/lib/web.c src/hg/lib/web.c
index 33c8f09842d..0a9b9bc4562 100644
--- src/hg/lib/web.c
+++ src/hg/lib/web.c
@@ -408,30 +408,50 @@
  * May be used to maintain table layout without a proper section header */
 {
 webEndSection();
 puts("<div>");
 puts("<!-- +++++++++++++++++++++ START NEW SECTION +++++++++++++++++++ -->");
 puts(  // TODO: Replace nested tables with CSS (difficulty is that tables are closed elsewhere)
     "<BR>\n\n"
     "   <!--outer table is for border purposes-->\n"
     "   <TABLE WIDTH='100%' BGCOLOR='#" HG_COL_BORDER
         "' BORDER='0' CELLSPACING='0' CELLPADDING='1'><TR><TD>\n"
     "    <TABLE BGCOLOR='#" HG_COL_INSIDE
          "' WIDTH='100%'  BORDER='0' CELLSPACING='0' CELLPADDING='0'><TR><TD>\n");
 puts("<div class='subheadingBar windowSize'>");
 }
 
+void webNewHiddenSectionHeaderEnd()
+/* Properly close header of hidden collapsible section on web page */
+{
+puts("     </div>\n"
+     "     <TABLE style='display:none' BGCOLOR='#" HG_COL_INSIDE "' WIDTH='100%' CELLPADDING=0>"
+          "<TR><TH HEIGHT=10></TH></TR>\n"
+     "     <TR><TD WIDTH=10>&nbsp;</TD><TD>\n\n");
+}
+
+void webNewHiddenSection(char* format, ...)
+/* create a new hidden section on the web page */
+{
+va_list args;
+va_start(args, format);
+webNewSectionHeaderStart();
+vprintf(format, args);
+webNewHiddenSectionHeaderEnd();
+va_end(args);
+}
+
 void webNewSectionHeaderEnd()
 /* Properly close header of collapsible section on web page */
 {
 puts("     </div>\n"
      "     <TABLE BGCOLOR='#" HG_COL_INSIDE "' WIDTH='100%' CELLPADDING=0>"
           "<TR><TH HEIGHT=10></TH></TR>\n"
      "     <TR><TD WIDTH=10>&nbsp;</TD><TD>\n\n");
 }
 
 void webNewSection(char* format, ...)
 /* create a new section on the web page */
 {
 va_list args;
 va_start(args, format);
 webNewSectionHeaderStart();