ca9faceb4bea8c732c739d9ae3499cb6e14014e1
kate
  Thu May 9 11:10:06 2019 -0700
Limit top links for Downloads and Contacts to ENCODE production phase tracks (not required for ENCODE 3 tracks). refs #23243

diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index 71f92cd..7995b47 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -68,50 +68,53 @@
     printf(DEF_BUTTON,(anc),"defaults_sm.png","default"); \
     safef(id, sizeof id, "btn_%s", (anc)); \
     jsOnEventByIdF("click", id, DEF_BUTTON_JS,(nameOrId),(beg),(contains),(nameOrId),(beg),(contains)); 
 
 #define PM_BUTTON  "<IMG height=18 width=18 id=\"btn_%s\" src=\"../images/%s\" alt=\"%s\">\n"
 #define PM_BUTTON_JS  "setCheckBoxesThatContain('%s',%s,true,'%s','','%s');"
 #define PLUS_BUTTON(nameOrId,anc,beg,contains) \
     printf(PM_BUTTON, (anc), "add_sm.gif",   "+"); \
     safef(id, sizeof id, "btn_%s", (anc)); \
     jsOnEventByIdF("click", id, PM_BUTTON_JS, (nameOrId),"true", (beg),(contains)); 
 #define MINUS_BUTTON(nameOrId,anc,beg,contains) \
     printf(PM_BUTTON, (anc), "remove_sm.gif", "-"); \
     safef(id, sizeof id, "btn_%s", (anc)); \
     jsOnEventByIdF("click", id, PM_BUTTON_JS, (nameOrId),"false", (beg),(contains)); 
 
-boolean isEncode2(char *database)
-// Return true for ENCODE2 assemblies
+boolean isEncode2(char *database, char *track)
+/* Return true for tracks created by UCSC DCC during ENCODE production phase */
 {
-return (sameString(database, "hg18") || sameString(database, "hg19") || sameString(database, "mm9"));
+if (startsWith("wgEncode", track))
+    return (sameString(database, "hg18") || sameString(database, "hg19") || 
+                sameString(database, "mm9"));
+return FALSE;
 }
 
 static char *htmlStringForDownloadsLink(char *database, struct trackDb *tdb,
 				    char *name,boolean nameIsFile)
 // Returns an HTML string for a downloads link
 {
 // If has fileSortOrder, then link to new hgFileUi
 if (!nameIsFile && trackDbSetting(tdb, FILE_SORT_ORDER) != NULL)
     {
     char * link = needMem(PATH_LEN); // 512 should be enough
     safef(link,PATH_LEN,"<A HREF='%s?db=%s&g=%s' title='Downloadable Files...' TARGET='ucscDownloads'>%s</A>",
 	  hgFileUiName(),database, /*cartSessionVarName(),cartSessionId(cart),*/ tdb->track, name);
 	  // Note the hgsid would be needed if downloads page ever saved fileSortOrder to cart.
     return link;
     }
-else if (trackDbSetting(tdb, "wgEncode") != NULL && isEncode2(database))  // Downloads directory if this is ENCODE
+else if (trackDbSetting(tdb, "wgEncode") != NULL && isEncode2(database, tdb->track))  // Downloads directory if this is ENCODE
     {
     const char *compositeDir = metadataFindValue(tdb, MDB_OBJ_TYPE_COMPOSITE);
     if (compositeDir == NULL && tdbIsComposite(tdb))
 	compositeDir = tdb->track;
     if (compositeDir != NULL)
 	{
 	struct dyString *dyLink =
 		dyStringCreate("<A HREF=\"http://%s/goldenPath/%s/%s/%s/%s\" title='Download %s' "
 			       "class='file' TARGET=ucscDownloads>%s</A>",
 			       hDownloadsServer(), database, ENCODE_DCC_DOWNLOADS, compositeDir,
 			       (nameIsFile?name:""), nameIsFile?"file":"files",name);
 	return dyStringCannibalize(&dyLink);
 	}
     }
 return NULL;