23ecc080ba35d0563c208e8ff96f9852475e34f6
chmalee
  Mon Jun 18 14:23:06 2018 -0700
Adding url, urls, urlLabel and extraFields support to bigBarChart tracks

diff --git src/hg/hgc/hgc.h src/hg/hgc/hgc.h
index a658655..8015de8 100644
--- src/hg/hgc/hgc.h
+++ src/hg/hgc/hgc.h
@@ -411,30 +411,40 @@
 /* Generate image as PNG, PDF, EPS: world map with pie charts for population allele frequencies. */
 
 char *hgdpPngFilePath(char *rsId);
 /* Return the stable PNG trash-cached image path for rsId. */
 
 void hgdpGeoFreqTable(struct hgdpGeo *geo);
 /* Print an HTML table of populations and allele frequencies. */
 
 void printOtherSnpMappings(char *table, char *name, int start,
 			   struct sqlConnection *conn, int rowOffset);
 /* If this SNP (from any bed4+ table) is not uniquely mapped, print the other mappings. */
 
 void printCustomUrl(struct trackDb *tdb, char *itemName, boolean encode);
 /* Wrapper to call printCustomUrlWithLabel using the url setting in trackDb */
 
+void printOtherCustomUrl(struct trackDb *tdb, char *itemName, char* urlSetting, boolean encode);
+/* Wrapper to call printCustomUrlWithLabel to use another url setting other than url in trackDb e.g. url2, this allows the use of multiple urls for a track
+ *  to be set in trackDb. */
+
+void printIdOrLinks(struct asColumn *col, struct hash *fieldToUrl, struct trackDb *tdb, char *idList);
+/* if trackDb does not contain a "urls" entry for current column name, just print idList as it is.
+ *  * Otherwise treat idList as a comma-sep list of IDs and print one row per id, with a link to url,
+ *   * ($$ in url is OK, wildcards like $P, $p, are also OK)
+ *    * */
+
 void printDbSnpRsUrl(char *rsId, char *labelFormat, ...)
 /* Print a link to dbSNP's report page for an rs[0-9]+ ID. */
 #ifdef __GNUC__
 __attribute__((format(printf, 2, 3)))
 #endif
     ;
 
 void doBamDetails(struct trackDb *tdb, char *item);
 /* Show details of an alignment from a BAM file. */
 
 void doVcfTabixDetails(struct trackDb *tdb, char *item);
 /* Show details of an alignment from a VCF file compressed and indexed by tabix. */
 
 void doVcfDetails(struct trackDb *tdb, char *item);
 /* Show details of an alignment from an uncompressed VCF file. */