605007ef944244124ff7b60fc9e225416b249c0b kate Tue Apr 4 10:58:58 2017 -0700 Fix problem with log transform + view limits controls. Code needed updating for CSP. refs #18736 diff --git src/hg/lib/barChartUi.c src/hg/lib/barChartUi.c index d9a7874..fd545aa 100644 --- src/hg/lib/barChartUi.c +++ src/hg/lib/barChartUi.c @@ -105,59 +105,62 @@ catSel->checked = (hashLookup(checkHash, categ->name) != NULL); slAddHead(&all, catSel); } slReverse(&all); makeGroupCheckboxes(name, NULL, all); puts("</tr></table>"); char buf[512]; safef(buf, sizeof(buf), "%s%s", cgiMultListShadowPrefix(), name); cgiMakeHiddenVar(buf, "0"); } /* Convenience functions for hgTrackUi */ void barChartUiLogTransform(struct cart *cart, char *track, struct trackDb *tdb) /* Checkbox to select log-transformed RPKM values */ +/* NOTE: this code from gtexUi.c. Consider sharing. */ { char cartVar[1024]; -char buf[512]; -puts("<b>Log10 transform:</b>\n"); +puts("<b>Log10(x+1) transform:</b>\n"); 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, "onchange='barChartUiTransformChanged(\"%s\")'", track); -cgiMakeCheckBoxJS(cartVar, isLogTransform, buf); +cgiMakeCheckBoxWithId(cartVar, isLogTransform, cartVar); +jsOnEventByIdF("change", cartVar, "barChartUiTransformChanged('%s');", track); } double barChartUiMaxMedianScore() /* Max median score, for scaling */ { //TODO: get from trackDb return 10000; } void barChartUiViewLimits(struct cart *cart, char *track, struct trackDb *tdb) /* Set viewing limits if log transform not checked */ +/* NOTE: this code from gtexUi.c. Consider sharing. */ { 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_LIMIT); int viewMax = cartCgiUsualInt(cart, cartVar, BAR_CHART_MAX_LIMIT_DEFAULT); cgiMakeIntVarWithExtra(cartVar, viewMax, 4, isLogTransform ? "disabled" : ""); -printf("<span class='%s'> (range 0-%d)</span>\n", buf, round(barChartUiMaxMedianScore())); +char *unit = trackDbSettingClosestToHomeOrDefault(tdb, BAR_CHART_UNIT, ""); +printf("<span class='%s'> %s (range 0-%d)</span>\n", buf, unit, round(barChartUiMaxMedianScore())); } 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. If barChartLabel setting contains label list, 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];