src/hg/hgc/hgc.c 1.1588

1.1588 2010/01/15 23:19:01 hiram
adding vega gene version identifier to those gene clicks
Index: src/hg/hgc/hgc.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgc/hgc.c,v
retrieving revision 1.1587
retrieving revision 1.1588
diff -b -B -U 4 -r1.1587 -r1.1588
--- src/hg/hgc/hgc.c	15 Jan 2010 15:35:30 -0000	1.1587
+++ src/hg/hgc/hgc.c	15 Jan 2010 23:19:01 -0000	1.1588
@@ -8111,57 +8111,57 @@
 int wordCount;
 int start = cartInt(cart, "o");
 struct sqlConnection *conn = hAllocConn(database);
 char condStr[256];
-char ensVersionString[256];
-char ensDateReference[256];
+char versionString[256];
+char dateReference[256];
 char headerTitle[512];
 
 /* see if hgFixed.trackVersion exists */
 boolean trackVersionExists = hTableExists("hgFixed", "trackVersion");
 
 if (trackVersionExists)
     {
     char query[256];
-    safef(query, sizeof(query), "select version,dateReference from hgFixed.trackVersion where db = '%s' order by updateTime DESC limit 1", database);
+    safef(query, sizeof(query), "select version,dateReference from hgFixed.trackVersion where db = '%s' AND name = 'ensGene' order by updateTime DESC limit 1", database);
     struct sqlResult *sr = sqlGetResult(conn, query);
     char **row;
 
     /* in case of NULL result from the table */
-    ensVersionString[0] = 0;
+    versionString[0] = 0;
     while ((row = sqlNextRow(sr)) != NULL)
 	{
-	safef(ensVersionString, sizeof(ensVersionString), "Ensembl %s",
+	safef(versionString, sizeof(versionString), "Ensembl %s",
 		row[0]);
-	safef(ensDateReference, sizeof(ensDateReference), "%s",
+	safef(dateReference, sizeof(dateReference), "%s",
 		row[1]);
 	}
     sqlFreeResult(&sr);
     }
 else
     {
-    ensVersionString[0] = 0;
-    ensDateReference[0] = 0;
+    versionString[0] = 0;
+    dateReference[0] = 0;
     }
 
 
 if (itemForUrl == NULL)
     itemForUrl = item;
 dupe = cloneString(tdb->type);
-if (ensVersionString[0])
-    safef(headerTitle, sizeof(headerTitle), "%s - %s", item, ensVersionString);
+if (versionString[0])
+    safef(headerTitle, sizeof(headerTitle), "%s - %s", item, versionString);
 else
     safef(headerTitle, sizeof(headerTitle), "%s", item);
 
 genericHeader(tdb, headerTitle);
 wordCount = chopLine(dupe, words);
 char *archive = trackDbSetting(tdb, "ensArchive");
 if (archive == NULL)
     {
-    if (ensDateReference[0])
+    if (dateReference[0])
 	{
-	if (differentWord("current", ensDateReference))
-	    archive = cloneString(ensDateReference);
+	if (differentWord("current", dateReference))
+	    archive = cloneString(dateReference);
 	}
     }
 printEnsemblCustomUrl(tdb, itemForUrl, item == itemForUrl, archive);
 sprintf(condStr, "name='%s'", item);
@@ -10399,11 +10399,51 @@
 void doVegaGene(struct trackDb *tdb, char *item, char *itemForUrl)
 /* Handle click on Vega gene track. */
 {
 struct vegaInfo *vi = NULL;
+char versionString[256];
+char dateReference[256];
+char headerTitle[512];
+
+/* see if hgFixed.trackVersion exists */
+boolean trackVersionExists = hTableExists("hgFixed", "trackVersion");
+
+if (trackVersionExists)
+    {
+    char query[256];
+    struct sqlConnection *conn = hAllocConn(database);
+    safef(query, sizeof(query), "select version,dateReference from hgFixed.trackVersion where db = '%s' AND name = 'vegaGene' order by updateTime DESC limit 1", database);
+    struct sqlResult *sr = sqlGetResult(conn, query);
+    char **row;
+
+    /* in case of NULL result from the table */
+    versionString[0] = 0;
+    while ((row = sqlNextRow(sr)) != NULL)
+	{
+	safef(versionString, sizeof(versionString), "Vega %s",
+		row[0]);
+	safef(dateReference, sizeof(dateReference), "%s",
+		row[1]);
+	}
+    sqlFreeResult(&sr);
+    hFreeConn(&conn);
+    }
+else
+    {
+    versionString[0] = 0;
+    dateReference[0] = 0;
+    }
+
 if (itemForUrl == NULL)
     itemForUrl = item;
-genericHeader(tdb, item);
+
+if (versionString[0])
+    safef(headerTitle, sizeof(headerTitle), "%s - %s", item, versionString);
+else
+    safef(headerTitle, sizeof(headerTitle), "%s", item);
+
+genericHeader(tdb, headerTitle);
+
 if (hTableExists(database, "vegaInfo"))
     {
     char query[256];
     struct sqlConnection *conn = hAllocConn(database);