5ea40f8b2a94c54e3a76e6b9a813f0db928eba90 kate Wed Feb 1 15:52:04 2017 -0800 Further work on details page for barchart. refs #18736 diff --git src/hg/lib/barChartUi.c src/hg/lib/barChartUi.c index e0d8821..3c4190c 100644 --- src/hg/lib/barChartUi.c +++ src/hg/lib/barChartUi.c @@ -1,67 +1,70 @@ /* Bar chart track controls */ /* Copyright (C) 2015 The Regents of the University of California * See README in this or parent directory for licensing information. */ #include "cheapcgi.h" #include "cart.h" #include "hui.h" #include "trackDb.h" #include "jsHelper.h" #include "hCommon.h" +#include "rainbow.h" #include "barChartCategory.h" #include "barChartUi.h" /* Restrict features on right-click (popup) version */ static boolean isPopup = FALSE; /* Convenience functions for category filter controls */ -static char *makeCategoryLabel(struct barChartCategory *categ) -{ +char *makeCategoryLabel(struct barChartCategory *categ) /* Display category color and label */ +{ char buf[256]; safef(buf, sizeof(buf), "
",
isPopup ? 75 : 100, boxed ?" width='100%'":"");
char cartVar[1024];
/* Data transform. When selected, the next control (view limits max) is disabled */
@@ -171,44 +243,41 @@
/* Color scheme */
#ifdef COLOR_SCHEME
printf(" Category colors:\n"); safef(cartVar, sizeof(cartVar), "%s.%s", track, BAR_CHART_COLORS); selected = cartCgiUsualString(cart, cartVar, BAR_CHART_COLORS_DEFAULT); boolean isUserColors = sameString(selected, BAR_CHART_COLORS_USER); cgiMakeRadioButton(cartVar, BAR_CHART_COLORS_USER, isUserColors); printf("Defined\n"); cgiMakeRadioButton(cartVar, BAR_CHART_COLORS_RAINBOW, !isUserColors); printf("Rainbow\n"); printf(" "); #endif /* Category filter */ printf(""); -// TODO: -#define BAR_CHART_CATEGORY_LABEL "categoryLabel" -#define BAR_CHART_CATEGORY_LABEL_DEFAULT "Categories" char *categoryLabel = trackDbSettingClosestToHomeOrDefault(tdb, BAR_CHART_CATEGORY_LABEL, BAR_CHART_CATEGORY_LABEL_DEFAULT); +char *db = cartString(cart, "db"); +struct barChartCategory *categs = barChartUiGetCategories(db, tdb); printf(" %s:\n", categoryLabel);
safef(cartVar, sizeof(cartVar), "%s.%s", track, BAR_CHART_CATEGORY_SELECT);
if (isPopup)
{
printf("",
hTrackUiForTrack(track), track);
}
else
{
jsMakeCheckboxGroupSetClearButton(cartVar, TRUE);
puts(" ");
jsMakeCheckboxGroupSetClearButton(cartVar, FALSE);
}
printf(" ");
-char *db = cartString(cart, "db");
-struct barChartCategory *categs = barChartGetCategories(db, track);
struct slName *selectedValues = NULL;
if (cartListVarExistsAnyLevel(cart, tdb, FALSE, BAR_CHART_CATEGORY_SELECT))
selectedValues = cartOptionalSlNameListClosestToHome(cart, tdb, FALSE, BAR_CHART_CATEGORY_SELECT);
makeCategoryCheckboxes(cartVar, categs, selectedValues);
puts("\n |