4595b1ed3824a528af34f62f24ce4bae9419e427
hiram
  Wed Feb 9 11:03:18 2011 -0800
fine tuning the data last updated printouts
diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c
index bdf2756..57b4c1b 100644
--- src/hg/hgc/hgc.c
+++ src/hg/hgc/hgc.c
@@ -2779,87 +2779,96 @@
     }
 }
 
 void printTrackUiLink(struct trackDb *tdb)
 /* Make link to hgTrackUi. */
 {
 char *trackName = getParentTrackName(tdb);
 struct trackDb *parentTdb = tdb;
 if (!sameString(trackName, tdb->track))
     parentTdb = hTrackDbForTrack(database, trackName);
 printf("<P><A HREF=\"../cgi-bin/hgTrackUi?g=%s&%s\">"
        "Go to %s track controls</A></P>\n",
        trackName, cartSidUrlString(cart), parentTdb->shortLabel);
 }
 
-void printDataVersion(struct trackDb *tdb)
+static boolean printDataVersion(struct trackDb *tdb)
 /* If this annotation has a dataVersion trackDb setting, print it */
 {
+boolean ret = FALSE;
 metadataForTable(database,tdb,NULL);
 const char *version = metadataFindValue(tdb,"dataVersion");
 if(version != NULL)
+    {
     printf("<B>Data version:</B> %s <BR>\n", version);
+    ret = TRUE;
+    }
 else
     {
     version = trackDbSetting(tdb,"dataVersion");
     if (version != NULL)
+	{
         printf("<B>Data version:</B> %s <BR>\n", version);
+	ret = TRUE;
     }
 }
+return ret;
+}
 
 void printDataRestrictionDate(struct trackDb *tdb)
 /* If this annotation has a dateUnrestricted trackDb setting, print it */
 {
 char *restrictionDate = encodeRestrictionDateDisplay(database,tdb);
 if (restrictionDate != NULL)
     {
     printf("<A HREF=\"/ENCODE/terms.html\" TARGET=_BLANK><B>Restricted until</A>:</B> %s <BR>\n",
                 restrictionDate);
     freeMem(restrictionDate);
     }
 }
 
-void printOrigAssembly(struct trackDb *tdb)
+static boolean printOrigAssembly(struct trackDb *tdb)
 /* If this annotation has been lifted, print the original
  * freeze, as indicated by the "origAssembly" trackDb setting */
 {
-trackDbOrigAssembly(tdb);
-trackDbPrintOrigAssembly(tdb, database);
+return trackDbPrintOrigAssembly(tdb, database);
 }
 
 static char *getHtmlFromSelfOrParent(struct trackDb *tdb)
 /* Get html from self or from parent if not in self. */
 {
 for (;tdb != NULL; tdb = tdb->parent)
     {
     if (tdb->html != NULL && tdb->html[0] != 0)
         return tdb->html;
     }
 return NULL;
 }
 
 void printTrackHtml(struct trackDb *tdb)
 /* If there's some html associated with track print it out. Also print
  * last update time for data table and make a link
  * to the TB table schema page for this table. */
 {
 if (!isCustomTrack(tdb->track))
     {
+    boolean otherDates = FALSE;
     extraUiLinks(database,tdb,trackHash);
     printTrackUiLink(tdb);
-    printDataVersion(tdb);
-    printOrigAssembly(tdb);
+    otherDates = printDataVersion(tdb);
+    otherDates |= printOrigAssembly(tdb);
+    if (!otherDates)
     printUpdateTime(database, tdb, NULL);
     printDataRestrictionDate(tdb);
     }
 char *html = getHtmlFromSelfOrParent(tdb);
 if (html != NULL && html[0] != 0)
     {
     htmlHorizontalLine();
 
     // Add pennantIcon
     printPennantIconNote(tdb);
 
     puts(html);
     }
 hPrintf("<BR>\n");
 }
@@ -22525,32 +22534,32 @@
         hasAttr++;
         gvAttrStaticLoad(row, &attr);
         printGvAttrCatType(i); /* only print header, if data */
         /* print value */
         printf("%s<BR>", attr.attrVal);
         }
     sqlFreeResult(&sr);
     hasAttr += printGvLink(escName, i);
     }
 if (hasAttr > 0)
     printf("</DD>");
 printf("</DL>\n");
 
 /* split code from printTrackHtml */
 printTBSchemaLink(tdb);
-printDataVersion(tdb);
-printOrigAssembly(tdb);
+(void) printDataVersion(tdb);
+(void) printOrigAssembly(tdb);
 printUpdateTime(database, tdb, NULL);
 if (tdb->html != NULL && tdb->html[0] != 0)
     {
     htmlHorizontalLine();
     puts(tdb->html);
     }
 hPrintf("<BR>\n");
 
 gvPosFree(&mut);
 freeMem(escName);
 freeMem(gvPrevCat);
 freeMem(gvPrevType);
 //printTrackHtml(tdb);
 hFreeConn(&conn);
 }