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("Auto-scale:\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(" ");
printf("View limits maximum:\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(" %s (range 0-%d)\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, ¤t);
-puts("Maximum height:\n");
-char cartVar[1024];
+puts("Chart height maximum:\n");
safef(cartVar, sizeof(cartVar), "%s.%s", tdb->track, HEIGHTPER);
-cgiMakeIntVarWithLimits(cartVar, current, "Maximum height", 0, min, max);
-printf("pixels (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(" pixels (range: %d to %d, default: %d)",
+ 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;