0b58f51e038bbae5f53aecbed905b7e959b08d84 kent Thu Jan 28 18:05:34 2021 -0800 Starting to add a new UI involving facets for the wide bar charts. It is not under hg.conf control, but currently only triggers for a track named 'singleCellMerged' diff --git src/hg/lib/barChartUi.c src/hg/lib/barChartUi.c index 6e9e885..2317e12 100644 --- src/hg/lib/barChartUi.c +++ src/hg/lib/barChartUi.c @@ -1,32 +1,34 @@ /* 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 "errCatch.h" +#include "web.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" +#include "tablesTables.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), "" " %s", categ->color, categ->label); return(cloneString(buf)); @@ -350,31 +352,31 @@ for (categ = categs; categ != NULL; categ = categ->next) if (categ->id == id) return categ; return NULL; } char *barChartUiGetCategoryLabelById(int id, char *database, struct trackDb *tdb) /* Get label for a category id */ { struct barChartCategory *categ = barChartUiGetCategoryById(id, database, tdb); if (categ == NULL) return "Unknown"; return categ->label; } -void barChartCfgUi(char *database, struct cart *cart, struct trackDb *tdb, char *track, +void barChartCfgUiSelectEachBar(char *database, struct cart *cart, struct trackDb *tdb, char *track, char *title, boolean boxed) /* Bar chart track type */ { if (cartVarExists(cart, "ajax")) isPopup = TRUE; boxed = cfgBeginBoxAndTitle(tdb, boxed, title); if (startsWith("big", tdb->type)) labelCfgUi(database, cart, tdb, track); printf("\n\n
", isPopup ? 75 : 100, boxed ?" width='100%'":""); char cartVar[1024]; /* Data transform. When selected, the next control (view limits max) is disabled */ @@ -403,15 +405,36 @@ 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
\n"); cfgEndBox(boxed); } + +void barChartFacetedUi(char *database, struct cart *cart, struct trackDb *tdb, char *track, + char *title, boolean boxed) +/* Bar chart track type that has an associated facets tables */ +{ +printf("