304a53cda44a5731304b57ef46d4b6d228649f97
angie
  Tue Sep 25 11:56:02 2012 -0700
hgTables schema page was using hub (sub)trackDb's without ->html;refactored html-fetching code out of hubConnectAddHubForTrackAndFindTdb
and into new hubConnectAddDescription. Also fixed the code to work
for subtracks (instead of assigning tdb->html to parents, if tdb->html
is empty, recurse up parents until we find a non-empty ->html and assign
that to tdb).

diff --git src/hg/inc/hubConnect.h src/hg/inc/hubConnect.h
index 6eb5ac1..ec97445 100644
--- src/hg/inc/hubConnect.h
+++ src/hg/inc/hubConnect.h
@@ -70,30 +70,34 @@
 #define hgHubConnectHubVarPrefix "hgHubConnect.hub."
 /* Prefix to temporary variable holding selected cart names. */
 
 boolean hubConnectTableExists();
 /* Return TRUE if the hubConnect table exists. */
 
 struct slName  *hubConnectHubsInCart(struct cart *cart);
 /* Return list of track hub ids that are turned on by user. */
 
 int hubIdFromCartName(char *trackName);
 /* Given something like "hgHubConnect.hub.123" return 123 */
 
 unsigned hubIdFromTrackName(char *trackName);
 /* Given something like "hub_123_myWig" return 123 */
 
+void hubConnectAddDescription(char *database, struct trackDb *tdb);
+/* Fetch tdb->track's html description (or nearest ancestor's non-empty description)
+ * and store in tdb->html. */
+
 struct trackDb *hubConnectAddHubForTrackAndFindTdb( char *database, 
     char *trackName, struct trackDb **pTdbList, struct hash *trackHash);
 /* Go find hub for trackName (which will begin with hub_), and load the tracks
  * for it, appending to end of list and adding to trackHash.  Return the
  * trackDb associated with trackName. */
 
 char *hubFileVar();
 /* return the name of the cart variable that holds the name of the
  * file in trash that has private hubs */
 
 boolean hubWriteToFile(FILE *f, struct hubConnectStatus *el);
 /* write out a hubConnectStatus structure to a file */
 
 unsigned hubFindOrAddUrlInStatusTable(char *database, struct cart *cart,
     char *url, char **errorMessage);