20db82d64258c81a94f963629028e6f09eccf629
galt
Sat Mar 16 01:17:20 2019 -0700
Fixing See N More count for faceted search. refs#23074.
diff --git src/hg/lib/tablesTables.c src/hg/lib/tablesTables.c
index d3052594..a8f8643 100644
--- src/hg/lib/tablesTables.c
+++ src/hg/lib/tablesTables.c
@@ -441,74 +441,79 @@
{
char *op = "reset";
htmlPrintf("
%s \n",
cartSessionVarName(), cartSessionId(cart),
op, field->fieldName, "",
"Clear"
);
}
int valuesShown = 0;
+ int valuesNotShown = 0;
if (field->showAllValues) // Sort alphabetically if they want all values
{
slSort(&field->valList, facetValCmp);
}
for (val = field->valList; val; val=val->next)
{
boolean specificallySelected = (val->selected && !field->allSelected);
if ((val->selectCount > 0 && (field->showAllValues || valuesShown < FacetFieldLimit))
|| specificallySelected)
{
++valuesShown;
char *op = "add";
if (specificallySelected)
op = "remove";
printf("\n");
htmlPrintf(" ",
specificallySelected ? "true" : "false",
specificallySelected ? "checked" : "");
htmlPrintf("",
cartSessionVarName(), cartSessionId(cart),
op, field->fieldName, val->val
);
htmlPrintf("%s (%d) ", val->val, val->selectCount);
printf(" \n");
}
+ else if (val->selectCount > 0)
+ {
+ ++valuesNotShown;
+ }
}
// show "See More" link when facet has lots of values
- if (!(field->showAllValues || valuesShown < FacetFieldLimit))
+ if (valuesNotShown > 0)
{
char *op = "showAllValues";
htmlPrintf("See %d More \n",
cartSessionVarName(), cartSessionId(cart),
- op, field->fieldName, "", slCount(field->valList) - FacetFieldLimit
+ op, field->fieldName, "", valuesNotShown
);
}
// show "See Fewer" link when facet has lots of values
if (field->showAllValues && valuesShown >= FacetFieldLimit)
{
char *op = "showSomeValues";
htmlPrintf("%s \n",
cartSessionVarName(), cartSessionId(cart),
op, field->fieldName, "",