1020ed9ae2ad60e3ec36657f14029485bb2ae0f7 kate Wed May 3 11:13:57 2017 -0700 Get bigBarChart custom track support mostly working. refs #18736 diff --git src/hg/lib/barChartUi.c src/hg/lib/barChartUi.c index f9eea8f..cb28ad3 100644 --- src/hg/lib/barChartUi.c +++ src/hg/lib/barChartUi.c @@ -144,53 +144,48 @@ { char cartVar[1024]; char buf[512]; safef(cartVar, sizeof(cartVar), "%s.%s", track, BAR_CHART_LOG_TRANSFORM); boolean isLogTransform = cartCgiUsualBoolean(cart, cartVar, BAR_CHART_LOG_TRANSFORM_DEFAULT); safef(buf, sizeof buf, "%sViewLimitsMaxLabel %s", track, isLogTransform ? "disabled" : ""); 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, isLogTransform ? "disabled" : ""); char *unit = trackDbSettingClosestToHomeOrDefault(tdb, BAR_CHART_UNIT, ""); printf("<span class='%s'> %s (range 0-%d)</span>\n", buf, unit, round(barChartUiMaxMedianScore(tdb))); } -char *barChartUiGetLabel(char *database, struct trackDb *tdb) -/* Get label for category list */ -{ -return trackDbSettingClosestToHomeOrDefault(tdb, BAR_CHART_CATEGORY_LABEL, - BAR_CHART_CATEGORY_LABEL_DEFAULT); -} - 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; if (labels == NULL) { - categs = barChartGetCategories(database, tdb->table); + errAbort("barChart track %s missing required %s setting\n", tdb->track, BAR_CHART_CATEGORY_LABELS); + // TODO: consider getting categories from .as schema + //categs = barChartGetCategories(database, tdb->table); } else { int count = chopLine(cloneString(labels), words); struct rgbColor *rainbow = getRainbow(&saturatedRainbowAtPos, count); if (colors != NULL) { int colorCount = chopLine(cloneString(colors), colorWords); if (colorCount != count) warn("barChart track %s mismatch between label (%d) and color (%d) settings", tdb->track, count, colorCount); } int i; char buf[6]; for (i=0; i<count; i++)