044b178ab81d6bf91356f74812af4ecfc9bff212 hiram Tue Feb 8 11:54:30 2011 -0800 consolidate the display of data last updated printout for hgc clicks, now working for most bbi types diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c index 8c83e33..bdf2756 100644 --- src/hg/hgc/hgc.c +++ src/hg/hgc/hgc.c @@ -2830,47 +2830,37 @@ /* 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. */ { -char *tableName; - if (!isCustomTrack(tdb->track)) { extraUiLinks(database,tdb,trackHash); printTrackUiLink(tdb); printDataVersion(tdb); printOrigAssembly(tdb); - if ((tableName = hTableForTrack(database, tdb->table)) != NULL) - { - struct sqlConnection *conn = hAllocConnTrack(database, tdb); - - char *date = firstWordInLine(sqlTableUpdate(conn, tableName)); - if (date != NULL) - printf("<B>Data last updated:</B> %s<BR>\n", date); - hFreeConn(&conn); - } + 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"); } @@ -19714,65 +19704,53 @@ sqlFreeResult(&sr); hFreeConn(&conn); } if (ct->fieldCount < 4) { if (! ct->dbTrack) { for (bed = ct->bedList; bed != NULL; bed = bed->next) if (bed->chromStart == start && sameString(seqName, bed->chrom)) break; } if (bed) printPos(bed->chrom, bed->chromStart, bed->chromEnd, NULL, TRUE, NULL); if (ct->dbTrack) - { - struct sqlConnection *conn = hAllocConn(CUSTOM_TRASH); - char *date = firstWordInLine(sqlTableUpdate(conn, ct->dbTableName)); - if (date != NULL) - printf("<B>Data last updated:</B> %s<BR>\n", date); - hFreeConn(&conn); - } + printUpdateTime(CUSTOM_TRASH, ct->tdb, ct); printTrackHtml(ct->tdb); return; } else { if (! ct->dbTrack) { for (bed = ct->bedList; bed != NULL; bed = bed->next) if (bed->chromStart == start && sameString(seqName, bed->chrom)) if (bed->name == NULL || sameString(itemName, bed->name) ) break; } } if (bed == NULL) errAbort("Couldn't find %s@%s:%d in %s", itemName, seqName, start, fileName); printCustomUrl(ct->tdb, itemName, TRUE); bedPrintPos(bed, ct->fieldCount, NULL); } printTrackUiLink(ct->tdb); if (ct->dbTrack) - { - struct sqlConnection *conn = hAllocConn(CUSTOM_TRASH); - char *date = firstWordInLine(sqlTableUpdate(conn, ct->dbTableName)); - if (date != NULL) - printf("<B>Data last updated:</B> %s<BR>\n", date); - hFreeConn(&conn); - } + printUpdateTime(CUSTOM_TRASH, ct->tdb, ct); printTrackHtml(ct->tdb); } void blastProtein(struct trackDb *tdb, char *itemName) /* Show protein to translated dna alignment for accession. */ { char startBuf[64], endBuf[64]; int start = cartInt(cart, "o"); boolean isClicked; struct psl *psl = 0; struct sqlResult *sr = NULL; struct sqlConnection *conn = hAllocConn(database); char query[256], **row; struct psl* pslList = getAlignments(conn, tdb->table, itemName); char *useName = itemName; @@ -22452,31 +22430,31 @@ 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; +char *escName = NULL; int hasAttr = 0; int i; int start = cartInt(cart, "o"); /* 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 @@ -22549,38 +22527,31 @@ 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); -if ((tableName = hTableForTrack(database, tdb->table)) != NULL) - { - struct sqlConnection *conn = hAllocConn(database); - char *date = firstWordInLine(sqlTableUpdate(conn, tableName)); - if (date != NULL) - printf("<B>Data last updated:</B> %s<BR>\n", date); - hFreeConn(&conn); - } +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); }