7033f67074594c3d9cc3487f079456928fdf3260
angie
  Tue Apr 12 13:46:14 2016 -0700
Major change to hgGateway: the contents are replaced by a new page designed by a graphic artist.
It has icons for selecting popular species, an autocomplete input for typing in species or common names,
as well as a phylogenetic tree display that shows the relationships of the species that we host.
It has a menu for selecting the assembly of the selected species' genome and the usual assembly
description.

refs #15277

diff --git src/hg/lib/hdb.c src/hg/lib/hdb.c
index 3f66fdb..0fb8cf0 100644
--- src/hg/lib/hdb.c
+++ src/hg/lib/hdb.c
@@ -4391,39 +4391,32 @@
     for (g = nativeGenomes;  g != NULL;  g = g->next)
 	slAddHead(&pairList, slPairNew(g->name, cloneString(g->name)));
     }
 slReverse(&pairList);
 return pairList;
 }
 
 struct slPair *hGetDbOptionsForGenome(char *genome)
 /* Return a list of slPairs, each containing db menu value and menu label,
  * useful for constructing an assembly menu for the given genome. */
 {
 struct slPair *pairList = NULL;
 if (isHubTrack(genome))
     {
     char *clade = trackHubAssemblyClade(genome);
-    struct dbDb *hubDbDbList = trackHubGetDbDbs(clade), *dbDb;
-    for (dbDb = hubDbDbList;  dbDb != NULL;  dbDb = dbDb->next)
-	{
-	char *db = dbDb->name;
-	if (isEmpty(db))
-	    db = dbDb->genome;
-	slAddHead(&pairList, slPairNew(db, cloneString(db)));
-	}
-    slReverse(&pairList);
+    struct dbDb *hubDbDbList = trackHubGetDbDbs(clade);
+    pairList = trackHubDbDbToValueLabel(hubDbDbList);
     }
 else
     {
     struct dyString *dy = sqlDyStringCreate("select name,description from %s "
 					    "where genome = '%s' order by orderKey", dbDbTable(), genome);
     struct sqlConnection *conn = hConnectCentral();
     pairList = sqlQuickPairList(conn, dy->string);
     hDisconnectCentral(&conn);
     dyStringFree(&dy);
     }
 return pairList;
 }
 
 struct slName *hLiftOverFromDbs()
 /* Return a list of names of the DBs in the