48fb236e9a07a49585fd1ed15f4aaff24dbcf8a2 max Thu Oct 26 13:15:57 2017 -0700 fixing dataVersion for hgTrackUi by libifying printDataVersion and expanding it to cover all possible track data version places that have accumulated over time. refs #20419 diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c index a887236..8940ada 100644 --- src/hg/hgc/hgc.c +++ src/hg/hgc/hgc.c @@ -3123,52 +3123,30 @@ } } 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=\"%s?g=%s&%s\">" "Go to %s track controls</A></P>\n", hTrackUiForTrack(tdb->track), trackName, cartSidUrlString(cart), parentTdb->shortLabel); } -static void printDataVersion(struct trackDb *tdb) -/* If this annotation has a dataVersion trackDb setting, print it */ -{ -if (trackHubDatabase(database)) - return; -metadataForTable(database,tdb,NULL); -const char *version = metadataFindValue(tdb,"dataVersion"); -if(version == NULL) - version = trackDbSetting(tdb,"dataVersion"); -if (version != NULL) - if (startsWith("/", version)) - { - char *path = replaceInUrl((char *)version, "", cart, database, seqName, winStart, winEnd, tdb->track, FALSE); - struct lineFile* lf = lineFileOpen(path, TRUE); - if (lf) - version = lineFileReadAll(lf); - } - -if (version != NULL) - printf("<B>Data version:</B> %s <BR>\n", version); -} - 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); } } static void printOrigAssembly(struct trackDb *tdb) /* If this annotation has been lifted, print the original * freeze, as indicated by the "origAssembly" trackDb setting */ @@ -3184,40 +3162,32 @@ 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)) { extraUiLinks(database, tdb); printTrackUiLink(tdb); - struct trackVersion *trackVersion = getTrackVersion(database, tdb->track); - // also try the parent for composites/superTracks - if(trackVersion == NULL && (tdb->parent!=NULL)) - trackVersion = getTrackVersion(database, tdb->parent->track); - - if(trackVersion == NULL) - printDataVersion(tdb); - else - printf("<B>Data version:</B> %s <BR>\n", trackVersion->version); printOrigAssembly(tdb); + printDataVersion(database, tdb); printUpdateTime(database, tdb, NULL); printDataRestrictionDate(tdb); } char *html = getHtmlFromSelfOrParent(tdb); if (html != NULL && html[0] != 0) { htmlHorizontalLine(); // Add pennantIcon printPennantIconNote(tdb); // Wrap description html in div with limited width, so when the page is very wide // due to long details, the user doesn't have to scroll right to read the description. puts("<div class='readableWidth'>"); puts(html); @@ -24123,33 +24093,35 @@ hasAttr++; gvAttrStaticLoad(row, &attr); printGvAttrCatType(i); /* only print header, if data */ /* print value */ printf("%s<BR>", attr.attrVal); } sqlFreeResult(&sr); hasAttr += printGvLink(itemName, i); } if (hasAttr > 0) printf("</DD>"); printf("</DL>\n"); /* split code from printTrackHtml */ printTBSchemaLink(tdb); -printDataVersion(tdb); + printOrigAssembly(tdb); +printDataVersion(database, tdb); printUpdateTime(database, tdb, NULL); + if (tdb->html != NULL && tdb->html[0] != 0) { htmlHorizontalLine(); puts(tdb->html); } hPrintf("<BR>\n"); gvPosFree(&mut); freeMem(gvPrevCat); freeMem(gvPrevType); //printTrackHtml(tdb); hFreeConn(&conn); } void doPgSnp(struct trackDb *tdb, char *itemName, struct customTrack *ct)