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("
\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("Exclude variants with these FILTER values:
\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))