75d98e0605289c832753618a335ccffccce9fc60
kate
Thu Jan 30 22:21:45 2014 -0800
Add multi-select filter for factors to factorSource config page
diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c
index 21157f4..e1296c5 100644
--- src/hg/hgTrackUi/hgTrackUi.c
+++ src/hg/hgTrackUi/hgTrackUi.c
@@ -2483,30 +2483,38 @@
jsMakeCheckboxGroupSetClearButton(cartVarName, TRUE);
jsMakeCheckboxGroupSetClearButton(cartVarName, FALSE);
cgiMakeCheckboxGroupWithVals(cartVarName, labelArr, valueArr, refCount, checked, 4);
hFreeConn(&conn);
}
static void factorSourceUi(char *db, struct trackDb *tdb)
{
if (trackDbSetting(tdb, "motifTable") != NULL)
{
char varName[64];
printf("
Highlight motifs: ");
safef(varName, sizeof(varName), "%s.highlightMotifs", tdb->track);
cartMakeCheckBox(cart, varName, trackDbSettingClosestToHomeOn(tdb, "motifDrawDefault"));
}
+// Multi-select filter on factors
+// NOTE: doesn't currently support track type in composites
+filterBy_t *filters = filterBySetGet(tdb, cart, tdb->track);
+if (filters == NULL)
+ return;
+puts("
"); +filterBySetCfgUi(cart, tdb, filters, TRUE); +filterBySetFree(&filters); } #ifdef UNUSED static boolean isInTrackList(struct trackDb *tdbList, struct trackDb *target) /* Return TRUE if target is in tdbList. */ { struct trackDb *tdb; for (tdb = tdbList; tdb != NULL; tdb = tdb->next) if (tdb == target) return TRUE; return FALSE; } #endif /* UNUSED */ void superTrackUi(struct trackDb *superTdb, struct trackDb *tdbList)