ae3969602106c0229160648f6ff6c87c3ad0de2d
giardine
  Tue Dec 7 14:13:12 2010 -0800
Addition of wiki track and supporting tracks for microattribution reviews (part of the variome project)
diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c
index 07c4405..6d1d409 100644
--- src/hg/hgc/hgc.c
+++ src/hg/hgc/hgc.c
@@ -21415,40 +21415,35 @@
 hFreeConn(&conn);
 }
 
 void doGv(struct trackDb *tdb, char *itemName)
 /* this prints the detail page for the Genome variation track */
 {
 char *table = tdb->table;
 struct gvPos *mut = NULL;
 struct gv *details = NULL;
 struct gvAttr attr;
 struct gvAttrLong attrLong;
 struct sqlConnection *conn = hAllocConn(database);
 struct sqlResult *sr;
 char **row;
 char query[256];
-char *escName = NULL, *tableName, *userName = NULL;
+char *escName = NULL, *tableName;
 int hasAttr = 0;
 int i;
 int start = cartInt(cart, "o");
 
-if (wikiTrackEnabled(database, &userName) && sameWord("0", itemName))
-    {
-    if (userName != NULL)
-        itemName = cartUsualString(cart, "gvPos.create.annotation", "0");
-    }
 /* official name, position, band, genomic size */
 escName = sqlEscapeString(itemName);
 safef(query, sizeof(query), "select * from hgFixed.gv where id = '%s'", escName);
 details = gvLoadByQuery(conn, query);
 
 genericHeader(tdb, details->name);
 
 /* change label based on species */
 if (sameString(organism, "Human"))
     printf("<B>HGVS name:</B> %s <BR>\n", details->name);
 else
     printf("<B>Official name:</B> %s <BR>\n", details->name);
 safef(query, sizeof(query),
       "select * from %s where chrom = '%s' and "
       "chromStart=%d and name = '%s'", table, seqName, start, escName);
@@ -22366,43 +22361,40 @@
     table = ct->dbTableName;
     conn = hAllocConn(CUSTOM_TRASH);
     bedPart = ct->fieldCount - 2;
     /* header handled by custom track handler */
     }
 
 /* postion, band, genomic size */
 escName = sqlEscapeString(itemName);
 safef(query, sizeof(query),
       "select * from %s where chrom = '%s' and chromStart = %d and chromEnd = %d and name = '%s'", table, chrom, start, end, escName);
 sr = sqlGetResult(conn, query);
 if ((row = sqlNextRow(sr)) != NULL)
     {
     r = bedDetailLoadWithGaps(row, bedPart+2);
     bedPrintPos((struct bed*)r, bedPart, tdb);
-    //print bedPart using bed routines?
-    //printf("<B>Name:</B> %s <BR>\n", r->name);
-    //print ID as link if have url
     if (r->id != NULL)
         {
         printf("<B>ID:</B> %s <BR>\n", r->id);
         printCustomUrl(tdb, r->id, TRUE);
         }
-    //printf("<B>Position:</B> %s:%u-%u<BR><BR>", r->chrom, *(r->chromStart)+1, *(r->chromEnd));
     if (r->description != NULL)
         printf("%s <BR>\n", r->description);
     }
 sqlFreeResult(&sr);
+printTrackHtml(tdb);
 
 bedDetailFree(&r);
 freeMem(escName);
 hFreeConn(&conn);
 }
 
 struct trackDb *tdbForTableArg()
 /* get trackDb for track passed in table arg */
 {
 char *table = cartString(cart, "table");
 struct trackDb *tdb = hashFindVal(trackHash, table);
 if (tdb == NULL)
     errAbort("no trackDb entry for %s", table);
 return tdb;
 }
@@ -22655,30 +22647,38 @@
      /* do nothing, everything handled in loweLabClick */
    }
 #endif
 else if (sameWord(table, G_DELETE_WIKI_ITEM))
     {
     doDeleteWikiItem(item, seqName, winStart, winEnd);
     }
 else if (sameWord(table, G_ADD_WIKI_COMMENTS))
     {
     doAddWikiComments(item, seqName, winStart, winEnd);
     }
 else if (sameWord(table, G_CREATE_WIKI_ITEM))
     {
     doCreateWikiItem(item, seqName, winStart, winEnd);
     }
+else if (sameString(track, "variome"))
+    doVariome(item, seqName, winStart, winEnd);
+else if (sameString(track, "variome.create"))
+    doCreateVariomeItem(item, seqName, winStart, winEnd);
+else if (sameString(track, "variome.delete"))
+    doDeleteVariomeItem(item, seqName, winStart, winEnd);
+else if (sameString(track, "variome.addComments"))
+    doAddVariomeComments(item, seqName, winStart, winEnd);
 else if (startsWith("transMapAln", table) || startsWith("reconTransMapAln", table))
     transMapClickHandler(tdb, item);
 else if (startsWith("hgcTransMapCdnaAli", table))
     {
     char *aliTable = cartString(cart, "aliTable");
     char *track = hGetTrackForTable(database, aliTable);
     tdb = hashMustFindVal(trackHash, track);
     transMapShowCdnaAli(tdb, item);
     }
 else if (sameWord(table, "mrna") || sameWord(table, "mrna2") ||
 	 startsWith("all_mrna",table) ||
 	 sameWord(table, "all_est") ||
 	 sameWord(table, "celeraMrna") ||
          sameWord(table, "est") || sameWord(table, "intronEst") ||
          sameWord(table, "xenoMrna") || sameWord(table, "xenoBestMrna") ||