7537f40b289d8ff6b05f41f66e683d97a130b794 kate Tue Nov 17 12:24:52 2020 -0800 Rough cut adding category file setting to barChart. refs #22075 diff --git src/hg/lib/barChartUi.c src/hg/lib/barChartUi.c index 255b10b..3855f22 100644 --- src/hg/lib/barChartUi.c +++ src/hg/lib/barChartUi.c @@ -1,298 +1,375 @@ /* 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 "net.h" #include "hui.h" #include "trackDb.h" #include "jsHelper.h" #include "hCommon.h" #include "rainbow.h" #include "htmlColor.h" #include "barChartCategory.h" #include "barChartUi.h" /* Restrict features on right-click (popup) version */ static boolean isPopup = FALSE; /* Convenience functions for category filter controls */ 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 */
puts(" ");
barChartUiLogTransform(cart, track, tdb);
/* Viewing limits max. This control is disabled if log transform is selected */
// construct class so JS can toggle
puts(" ");
barChartUiViewLimits(cart, track, tdb);
puts(" ");
/* Category filter */
printf(""); 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(" ");
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 |