1886d5d3eadf17bf15566b51b4e7ecffba0e87ee
kent
  Mon Aug 27 15:52:08 2018 -0700
Making it so that facets only show most popular 20 unless you expand them.  Also when you expand they are sorted alphabetically rather than by popularity.

diff --git src/hg/inc/facetField.h src/hg/inc/facetField.h
index 8908a4b..0ebf422 100644
--- src/hg/inc/facetField.h
+++ src/hg/inc/facetField.h
@@ -1,48 +1,51 @@
 #ifndef FACETFIELD_H
 #define FACETFIELD_H
 
-#define FacetFieldLimit 100   // maximum facet values to show before displaying the See More link 
+#define FacetFieldLimit 20   // maximum facet values to show before displaying the See More link 
 
 struct facetVal
 /* Keep track of number of uses of a field value */
     {
     struct facetVal *next;   /* Next in list */
     char *val;		    /* Value, not allocated here */
     int useCount;	    /* Number of times this value used */
     boolean selected;	    /* Selected value, true if selected. 
 			     *  if no value has been selected = ALL are selected */
     int selectCount;	    /* Number of times this value used if selected. */
     };
 
 struct facetField
 /* Keeps track of number of uses and unique values of a field */
     {
     struct facetField *next;   /* Next in list */
     char *fieldName;	    /* Name of field */
     int useCount;	    /* Number of times field is used */
     struct hash *valHash;   /* Hash of tag values, facetVal valued */
     struct facetVal *valList; /* List of tag values sorted with most used first */
     struct facetVal *currentVal; /* Temporary value saves having to repeat hash lookup. */
     boolean allSelected;    /* When on no specific values selected, so all values are selected. default TRUE. */
     boolean showAllValues;  /* When true, show all values, otherwise only show first 100 values plus See More link, defaults to false */
     };
 
 int facetValCmpSelectCountDesc(const void *va, const void *vb);
 /* Compare two facetVal so as to sort them based on selectCount with most used first.
  * If two have same count, sort alphabetically on facet val.  */
 
+int facetValCmp(const void *va, const void *vb);
+/* Compare two facetVal alphabetically by val */
+
 void selectedListFacetValUpdate(struct facetField **pSelectedList, char *facetName, char *facetValue, char *op);
 /* Add or remove by changing selected boolean */
 
 char *linearizeFacetVals(struct facetField *selectedList);
 /* Linearize selected fields vals into a string */
 
 struct facetField *deLinearizeFacetValString(char *selectedFields);
 /* Turn linearized selected fields string back into facet structures */
 
 boolean perRowFacetFields(int fieldCount, char **row, char *nullVal, struct facetField *ffArray[]);
 /* Process each row of a resultset updating use and select counts. 
  * Returns TRUE if row passes selected facet values filter and should be included in the final result set. */
 
 struct facetField *facetFieldsFromSqlTableInit(char *fields[], int fieldCount, char *selectedFields, struct facetField *ffArray[]);
 /* Initialize ffList and ffArray and selected facet values */