8b16df428363748e823cc2b5a646b33466524f65
kate
  Thu Aug 24 13:20:50 2017 -0700
Extending maxHeight UI for barChart. refs #19872

diff --git src/hg/lib/barChartUi.c src/hg/lib/barChartUi.c
index 00056f5..e6aed16 100644
--- src/hg/lib/barChartUi.c
+++ src/hg/lib/barChartUi.c
@@ -144,56 +144,65 @@
 // Implemented, but leaving out for now (seems confusing)
 puts("  ");
 puts("<b>Auto-scale:</b>\n");
 safef(cartVar, sizeof(cartVar), "%s.%s", track, BAR_CHART_AUTOSCALE);
 isAutoScale = cartCgiUsualBoolean(cart, cartVar, BAR_CHART_AUTOSCALE_DEFAULT);
 cgiMakeCheckBoxWithId(cartVar, isAutoScale, cartVar);
 jsOnEventByIdF("change", cartVar, "barChartTransformChanged(event);");
 #endif
 
 boolean isViewLimits = !isAutoScale && !isLogTransform;
 safef(buf, sizeof buf, "%sViewLimitsMaxLabel %s", track, !isViewLimits ? "disabled" : "");
 puts("&nbsp;&nbsp;");
 printf("<span class='%s'><b>View limits maximum:</b></span>\n", buf);
 safef(cartVar, sizeof(cartVar), "%s.%s", track, BAR_CHART_MAX_VIEW_LIMIT);
 int viewMax = cartCgiUsualInt(cart, cartVar, BAR_CHART_MAX_VIEW_LIMIT_DEFAULT);
-cgiMakeIntVarWithExtra(cartVar, viewMax, 4, !isViewLimits ? "disabled" : "");
+cgiMakeIntVarWithExtra(cartVar, viewMax, 6, !isViewLimits ? "disabled" : "");
 char *unit = trackDbSettingClosestToHomeOrDefault(tdb, BAR_CHART_UNIT, "");
 printf("<span class='%s'> %s (range 0-%d)</span>\n", buf, unit, 
                                 round(barChartUiMaxMedianScore(tdb)));
 }
 
 void barChartUiFetchMinMaxPixels(struct cart *cart, struct trackDb *tdb, 
                                 int *retMin, int *retMax, int *retDefault, int *retCurrent)
 /* Get min/max/default/current settings for track height from cart and trackDb */
 {
 assert(retMin && retMax && retDefault && retCurrent);
 cartTdbFetchMinMaxPixels(cart, tdb, 
-                            BAR_CHART_MAX_HEIGHT_MIN, BAR_CHART_MAX_HEIGHT_MAX, BAR_CHART_MAX_HEIGHT_DEFAULT,
+                            BAR_CHART_MAX_HEIGHT_MIN, BAR_CHART_MAX_HEIGHT_MAX, 
+                            BAR_CHART_MAX_HEIGHT_DEFAULT,
                             retMin, retMax, retDefault, retCurrent);
 }
 
 static void barChartUiMaxHeight(struct cart *cart, struct trackDb *tdb)
 /* Input box to change maximum item height */
 {
+char cartVar[1024];
+safef(cartVar, sizeof(cartVar), "%s.%s", tdb->track, BAR_CHART_LIMIT_HEIGHT);
+boolean limitChartHeight = cartCgiUsualBoolean(cart, cartVar, BAR_CHART_LIMIT_HEIGHT_DEFAULT);
+cgiMakeCheckBoxWithId(cartVar, limitChartHeight, cartVar);
+jsOnEventByIdF("change", cartVar, "barChartHeightLimitChanged(event);");
+
 int min, max, deflt, current;
 barChartUiFetchMinMaxPixels(cart, tdb, &min, &max, &deflt, &current);
-puts("<b>Maximum height:</b>\n");
-char cartVar[1024];
+puts("<b>Chart height maximum:</b>\n");
 safef(cartVar, sizeof(cartVar), "%s.%s", tdb->track, HEIGHTPER);
-cgiMakeIntVarWithLimits(cartVar, current, "Maximum height", 0, min, max);
-printf("pixels&nbsp;(range: %d to %d, default: %d)", min, max, deflt);
+char buf[512];
+safef(buf, sizeof buf, "%sChartLimitsMaxLabel %s", tdb->track, !limitChartHeight ? "disabled" : "");
+cgiMakeIntVarWithExtra(cartVar, current, 3, !limitChartHeight ? "disabled":"");
+printf("&nbsp;<span class='%s'>pixels&nbsp;(range: %d to %d, default: %d)<span>", 
+        buf, min, max, deflt);
 }
 
 struct barChartCategory *barChartUiGetCategories(char *database, struct trackDb *tdb)
 /* Get category colors and descriptions.  Use barChartColors setting if present.
    If not, if there is a barChartBars setting, assign rainbow colors.
  * O/w look for a table naed track+Category, and use labels and colors there 
  */
 {
 struct barChartCategory *categs = NULL;
 char *words[BAR_CHART_MAX_CATEGORIES];
 char *colorWords[BAR_CHART_MAX_CATEGORIES];
 char *labels = trackDbSettingClosestToHome(tdb, BAR_CHART_CATEGORY_LABELS);
 char *colors = trackDbSettingClosestToHome(tdb, BAR_CHART_CATEGORY_COLORS);
 struct barChartCategory *categ = NULL;