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("<dd><a class='btn btn-secondary' href='../cgi-bin/cdwWebBrowse?%s=%s|url|&cdwCommand=browseFiles"
 			"&browseFiles_facet_op=%s|url|"
 			"&browseFiles_facet_fieldName=%s|url|"
 			"&browseFiles_facet_fieldVal=%s|url|"
 			"&cdwBrowseFiles_page=1' "
 			">%s</a></dd>\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("<dd class=\"facet\">\n");
 		    htmlPrintf("<input type=checkbox value=%s class=cdwFSCheckBox %s>&nbsp;",
 			specificallySelected ? "true" : "false", 
 			specificallySelected ? "checked" : "");
 		    htmlPrintf("<a href='../cgi-bin/cdwWebBrowse?%s=%s|url|&cdwCommand=browseFiles"
 			    "&browseFiles_facet_op=%s|url|"
 			    "&browseFiles_facet_fieldName=%s|url|"
 			    "&browseFiles_facet_fieldVal=%s|url|"
                             "&cdwBrowseFiles_page=1' "
 			    ">",
 			cartSessionVarName(), cartSessionId(cart),
 			op, field->fieldName, val->val
                         );
 		    htmlPrintf("%s (%d)</a>", val->val, val->selectCount);
 		    printf("</dd>\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("<dd><a href='../cgi-bin/cdwWebBrowse?%s=%s|url|&cdwCommand=browseFiles"
 			"&browseFiles_facet_op=%s|url|"
 			"&browseFiles_facet_fieldName=%s|url|"
 			"&browseFiles_facet_fieldVal=%s|url|"
 			"&cdwBrowseFiles_page=1' "
 			">See %d More</a></dd>\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("<dd><a href='../cgi-bin/cdwWebBrowse?%s=%s|url|&cdwCommand=browseFiles"
 			"&browseFiles_facet_op=%s|url|"
 			"&browseFiles_facet_fieldName=%s|url|"
 			"&browseFiles_facet_fieldVal=%s|url|"
 			"&cdwBrowseFiles_page=1' "
 			">%s</a></dd>\n",
 		    cartSessionVarName(), cartSessionId(cart),
 		    op, field->fieldName, "",