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(""); if (showLongLabel) dyStringPrintf(dyTable,"",tdb->longLabel); if (showShortLabel) dyStringPrintf(dyTable,"" "",tdb->shortLabel); for(; pairs; pairs = pairs->next) { - if (!isEmpty((char *)pairs->val)) + if (!sameString(pairs->name, "meta") && !isEmpty((char *)pairs->val)) dyStringPrintf(dyTable,"" "",pairs->name, (char *)pairs->val); } dyStringAppend(dyTable,"
%s
shortLabel:%s
%s:%s
"); 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("",tdb->table); struct dyString *dyTable = dyStringCreate("
"); if (showLongLabel) dyStringPrintf(dyTable,"",tdb->longLabel); if (showShortLabel) dyStringPrintf(dyTable,"" "",tdb->shortLabel); @@ -292,46 +293,50 @@ } } dyStringPrintf(dyTable,"" "",mdbVar->var,mdbVar->val); } } dyStringAppend(dyTable,"
%s
shortLabel:%s
%s:%s
"); //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%s", (embeddedInText?" ":"

"),tdb->track,tdb->track, showLongLabel?"true":"false", (title?title:"")); printf("

",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("Metadata:
%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++;