d53e5750a3d3e8b7da4d38d6242022bdece345e2 braney Tue Jan 24 13:00:31 2017 -0800 changes to tagStorm support. #18183 diff --git src/hg/lib/hui.c src/hg/lib/hui.c index a7b1ebe..1f1abd8 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -176,57 +176,58 @@ freeMem(encFile); } else dyLink = dyStringCreate(VOCAB_LINK,encTerm,encValue,title,label); if (suffix != NULL) dyStringAppend(dyLink,suffix); // Don't encode since this may contain HTML freeMem(encTerm); freeMem(encValue); return dyStringCannibalize(&dyLink); } char *tagStormAsHtmlTable(char *tagStormFile, struct trackDb *tdb,boolean showLongLabel,boolean showShortLabel) /* Return a string which is an HTML table of the tags for this track. */ { -struct slPair *pairs = tagRepoPairs(tagStormFile, "track", trackHubSkipHubName(tdb->track)); +char *metaTag = trackDbSetting(tdb, "meta"); +struct slPair *pairs = tagRepoPairs(tagStormFile, "meta", metaTag); if (pairs == NULL) return ""; struct dyString *dyTable = dyStringCreate("<table style='display:inline-table;'>"); if (showLongLabel) dyStringPrintf(dyTable,"<tr valign='bottom'><td colspan=2 nowrap>%s</td></tr>",tdb->longLabel); if (showShortLabel) dyStringPrintf(dyTable,"<tr valign='bottom'><td align='right' nowrap><i>shortLabel:</i></td>" "<td nowrap>%s</td></tr>",tdb->shortLabel); for(; pairs; pairs = pairs->next) { - if (!isEmpty((char *)pairs->val)) + if (!sameString(pairs->name, "meta") && !isEmpty((char *)pairs->val)) dyStringPrintf(dyTable,"<tr valign='bottom'><td align='right' nowrap><i>%s:</i></td>" "<td nowrap>%s</td></tr>",pairs->name, (char *)pairs->val); } dyStringAppend(dyTable,"</table>"); return dyStringCannibalize(&dyTable); } char *metadataAsHtmlTable(char *db,struct trackDb *tdb,boolean showLongLabel,boolean showShortLabel) // If metadata from metaDb exists, return string of html with table definition { -char *tagStormFile = trackDbSetting(tdb, "tagStorm"); +char *tagStormFile = trackDbSetting(tdb, "metaDb"); if (tagStormFile) return tagStormAsHtmlTable(tagStormFile, tdb, showLongLabel, showShortLabel); const struct mdbObj *safeObj = metadataForTable(db,tdb,NULL); if (safeObj == NULL || safeObj->vars == NULL) return NULL; //struct dyString *dyTable = dyStringCreate("<table id='mdb_%s'>",tdb->table); struct dyString *dyTable = dyStringCreate("<table style='display:inline-table;'>"); if (showLongLabel) dyStringPrintf(dyTable,"<tr valign='bottom'><td colspan=2 nowrap>%s</td></tr>",tdb->longLabel); if (showShortLabel) dyStringPrintf(dyTable,"<tr valign='bottom'><td align='right' nowrap><i>shortLabel:</i></td>" "<td nowrap>%s</td></tr>",tdb->shortLabel); @@ -292,46 +293,50 @@ } } dyStringPrintf(dyTable,"<tr valign='bottom'><td align='right' nowrap><i>%s:</i></td>" "<td nowrap>%s</td></tr>",mdbVar->var,mdbVar->val); } } dyStringAppend(dyTable,"</table>"); //mdbObjsFree(&mdbObj); // spill some memory return dyStringCannibalize(&dyTable); } boolean compositeMetadataToggle(char *db,struct trackDb *tdb,char *title, boolean embeddedInText,boolean showLongLabel) // If metadata from metaTbl exists, create a link that will allow toggling it's display { +char *tagStormFile = trackDbSetting(tdb, "metaDb"); +if (tagStormFile == NULL) + { const struct mdbObj *safeObj = metadataForTable(db,tdb,NULL); if (safeObj == NULL || safeObj->vars == NULL) return FALSE; + } printf("%s<A HREF='#a_meta_%s' onclick='return metadataShowHide(\"%s\",%s,true);' " "title='Show metadata details...'>%s<img src='../images/downBlue.png'/></A>", (embeddedInText?" ":"<P>"),tdb->track,tdb->track, showLongLabel?"true":"false", (title?title:"")); printf("<DIV id='div_%s_meta' style='display:none;'>%s</div>",tdb->track, metadataAsHtmlTable(db,tdb,showLongLabel,FALSE)); return TRUE; } void extraUiLinks(char *db,struct trackDb *tdb) // Show metadata, and downloads, schema links where appropriate { -char *tagStormFile = trackDbSetting(tdb, "tagStorm"); +char *tagStormFile = trackDbSetting(tdb, "metaDb"); boolean hasMetadata = (tagStormFile != NULL) || (!tdbIsComposite(tdb) && !trackHubDatabase(db) && metadataForTable(db, tdb, NULL) != NULL); if (hasMetadata) printf("<b>Metadata:</b><br>%s\n", metadataAsHtmlTable(db, tdb, FALSE, FALSE)); boolean schemaLink = (!tdbIsDownloadsOnly(tdb) && !trackHubDatabase(db) && isCustomTrack(tdb->table) == FALSE) && (hTableOrSplitExists(db, tdb->table)); boolean downloadLink = (trackDbSetting(tdb, "wgEncode") != NULL && !tdbIsSuperTrack(tdb)); int links = 0; if (schemaLink) links++; if (downloadLink) links++;