8ae222adb54c0234afbe72e49a50da755c272352
kate
  Wed Mar 17 17:30:41 2021 -0700
1. Add checkbox to multi-region config custom regions panel that causes display to show all regions. This is under same hg.conf control as multi-region button move 2. Change multiRegionBedUrl track setting to match existing cart var (multiRegionsBedUrl). Tweak help text on MR config panel, as per QA input. refs #26385

diff --git src/hg/hgTracks/config.c src/hg/hgTracks/config.c
index 3e876bf..a9e74e4 100644
--- src/hg/hgTracks/config.c
+++ src/hg/hgTracks/config.c
@@ -737,31 +737,33 @@
 char *groupTarget;
 struct track *trackList;
 struct track *ideoTrack;
 struct group *groupList;
 int vis = -2;
 
 configInitTrackList(vis, &groupTarget, &trackList, &ideoTrack, &groupList);
 
 hPrintf("<FORM ACTION=\"%s\" NAME=\"mainForm\" METHOD=%s>\n", hgTracksName(),
 	cartUsualString(cart, "formMethod", "POST"));
 
 webStartWrapperDetailedNoArgs(cart, database, "", "", FALSE, FALSE, FALSE, FALSE);
 
 cartSaveSession(cart);
 
-hPrintf("Multi-region display 'slices' the genome to allow viewing discontinuous regions"
+hPrintf("<A HREF=\"../goldenPath/help/multiRegionHelp.html\" target=_blank>"
+                "<b><em>Multi-region display</em></b></A>"
+            " 'slices' the genome to allow viewing discontinuous regions"
             " together in the browser window. &nbsp;&nbsp;");
 // mode-specific message filled in by JS when dialog opened
 hPrintf("<span id='multiRegionConfigStatusMsg'></span>");
 hPrintf("<p></p>");
 
 hTableStart();
 
 virtModeType = cartUsualString(cart, "virtModeType", virtModeType);
 
 hPrintf("<TR><TD>");
 cgiMakeRadioButton("virtModeType", "default", sameWord("default", virtModeType));
 hPrintf("</TD>");
 hPrintf("<TD id='virtModeTypeDefaultLabel'>");
 hPrintf("Exit multi-region mode");
 hPrintf("</TD></TR>\n");
@@ -819,32 +821,42 @@
     {
     if (fileExists(multiRegionsBedUrl))
 	{
 	struct lineFile *lf = lineFileMayOpen(multiRegionsBedUrl, TRUE);
 	char *line;
 	int lineSize;
 	while (lineFileNext(lf, &line, &lineSize))
 	    {
 	    dyStringPrintf(dyMultiRegionsBedInput, "%s\n", line);
 	    }
 	lineFileClose(&lf);
 	}
     }
 hPrintf("<TEXTAREA NAME='multiRegionsBedInput' ID='multiRegionsBedInput' rows='4' cols='58' style='white-space: pre;'>%s</TEXTAREA>",
     dyMultiRegionsBedInput->string);
-hPrintf("</TD></TR>\n");
 
+// option to set viewing window to show all regions.  This id also known to JS.
+if (cfgOptionBooleanDefault(MULTI_REGION_CFG_BUTTON_TOP, FALSE))
+    {
+    boolean isChecked = cartUsualBoolean(cart, MULTI_REGION_BED_WIN_FULL, FALSE);
+    hPrintf("&nbsp;&nbsp");
+    cgiMakeCheckBoxUtil(MULTI_REGION_BED_WIN_FULL, isChecked, 
+                            "If unchecked, when regions are changed here the view is zoomed in and does not display all regions", 
+                            MULTI_REGION_BED_WIN_FULL);
+    hPrintf("Show all");
+    hPrintf("</TD></TR>\n");
+}
 
 /* The AllChroms option will be released in future
 if (emGeneTable && sqlTableExists(conn, emGeneTable))
     {
     hPrintf("<TR><TD>");
     cgiMakeRadioButton("virtModeType", "singleTrans", sameWord("singleTrans", virtModeType));
     hPrintf("</TD><TD>");
     hPrintf("Show only one transcript using an ID from %s : ", emGeneTrack->shortLabel);
     char *trans = cartUsualString(cart, "singleTransId", singleTransId);
     char sql[1024];
     sqlSafef(sql, sizeof sql, "select name from %s where name='%s'", emGeneTable, trans);
     char *result = sqlQuickString(conn, sql);
     if (!result)
 	{
 	sqlSafef(sql, sizeof sql, "select name from %s limit 1", emGeneTable);
@@ -966,29 +978,27 @@
 hPrintf("<BR>\n");
 hPrintf("<TABLE style=\"border:0px; \">\n");
 hPrintf("<TR><TD>");
 hCheckBox("emAltHighlight", cartUsualBoolean(cart, "emAltHighlight", FALSE));
 hPrintf("</TD><TD>");
 hPrintf("Highlight alternating regions in multi-region view");
 hPrintf("</TD></TR>\n");
 hPrintf("</TABLE>\n");
 
 hPrintf("<BR>\n");
 hPrintf("<TABLE style=\"border:0px;width:650px \">\n");
 hPrintf("<TR><TD>");
 cgiMakeButton("topSubmit", "Submit");
 hPrintf("&nbsp;&nbsp");
 cgiMakeCancelButton("Cancel");
-hPrintf("</TD><TD align=right>");
-hPrintf("<A HREF=\"../goldenPath/help/multiRegionHelp.html\" target=_blank>Help</A>\n");
 hPrintf("</TD></TR>\n");
 hPrintf("</TABLE>\n");
 
 hFreeConn(&conn);
 
 cgiDown(0.9);
 
 freez(&groupTarget);
 webEndSectionTables();
 hPrintf("</FORM>");
 }