30720cca39e1e8cdfc6c644f729dfd2ee80a4331 angie Tue Oct 15 11:43:58 2019 -0700 Don't show 'set all' and 'clear all' buttons for filter options if there is only one value in the list. refs #21784 diff --git src/hg/lib/vcfUi.c src/hg/lib/vcfUi.c index 2171683..ee4a163 100644 --- src/hg/lib/vcfUi.c +++ src/hg/lib/vcfUi.c @@ -256,34 +256,37 @@ safef(cartVar, sizeof(cartVar), "%s." VCF_MIN_QUAL_VAR, name); cgiMakeDoubleVar(cartVar, minQual, 10); printf("<BR>\n"); } static void vcfCfgFilterColumn(struct cart *cart, struct trackDb *tdb, struct vcfFile *vcff, char *name, boolean parentLevel) /* Show controls for filtering by value of VCF's FILTER column, which uses values defined * in the header. */ { int filterCount = slCount(vcff->filterDefs); if (filterCount < 1) return; printf("<B>Exclude variants with these FILTER values:</B><BR>\n"); char cartVar[1024]; +if (slCount(vcff->filterDefs) > 1) + { safef(cartVar, sizeof(cartVar), "%s."VCF_EXCLUDE_FILTER_VAR, name); jsMakeCheckboxGroupSetClearButton(cartVar, TRUE); puts(" "); jsMakeCheckboxGroupSetClearButton(cartVar, FALSE); + } char *values[filterCount]; char *labels[filterCount]; int i; struct vcfInfoDef *filt; for (i=0, filt=vcff->filterDefs; filt != NULL; i++, filt = filt->next) { values[i] = filt->key; struct dyString *dy = dyStringNew(0); dyStringAppend(dy, filt->key); if (isNotEmpty(filt->description)) dyStringPrintf(dy, " (%s)", filt->description); labels[i] = dyStringCannibalize(&dy); } struct slName *selectedValues = NULL; if (cartListVarExistsAnyLevel(cart, tdb, FALSE, VCF_EXCLUDE_FILTER_VAR))