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