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> ", 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, "",