1a3400408892585e530f10d4b8c4b612f29e9473
jcasper
Thu Mar 26 04:18:29 2026 -0700
Adding parent link to UI for faceted composites in supertracks, refs #36320
diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c
index 3b0e375e388..52d240cdac1 100644
--- src/hg/hgTrackUi/hgTrackUi.c
+++ src/hg/hgTrackUi/hgTrackUi.c
@@ -3509,30 +3509,33 @@
// A bit of context when we're in hierarchy: parent description and sibling track list
if (!tdb->parent)
return;
// show super-track info
struct trackDb *tdbParent = tdb->parent;
printf("Track collection: "
"
"
"%s ",
hgTrackUiName(), cartSessionVarName(), cartSessionId(cart),
chromosome, cgiEncode(tdbParent->track), tdbParent->longLabel);
printf("
");
+if (tdbIsComposite(tdb) && sameOk(trackDbLocalSetting(tdb, "compositeTrack"), "faceted"))
+ return;
+
if (tdbParent->html)
{
// collapsed panel for Description
printf("
"); // required by jsCollapsible
jsBeginCollapsibleSectionFontSize(cart, tdb->track, "superDescription", "Description", FALSE,
"medium");
// TODO: better done with regex
char *html = replaceChars(tdbParent->html, "Description", "");
html = replaceChars(html, "Description
", "");
html = replaceChars(html, "Description
", "");
@@ -3756,31 +3759,30 @@
grpFreeList(&grps);
}
// incoming links from Google searches can go directly to a composite child trackUi page: tell users
// that they're inside a container now and can go back up the hierarchy
if (tdbGetComposite(tdb)) {
printf("This track is a subtrack of the composite container track \"%s\".
", tdb->parent->shortLabel);
printf("Click here to display the \"%s\" container configuration page.", database, chromosome, tdb->parent->track, tdb->parent->shortLabel);
}
}
puts("
");
if (tdbIsSuperTrackChild(tdb))
- if (! (tdbIsComposite(tdb) && sameOk(trackDbLocalSetting(tdb, "compositeTrack"), "faceted")) )
showSupertrackInfo(tdb);
if (ct && sameString(tdb->type, "maf"))
tdb->canPack = TRUE;
else if (sameString(tdb->track, WIKI_TRACK_TABLE))
// special case wikiTrack (there's no trackDb entry); fixes redmine 2395
tdb->canPack = TRUE;
else if (sameString(tdb->type, "halSnake"))
tdb->canPack = TRUE;
else if (!startsWith("bigWig", tdb->type) && startsWith("big", tdb->type))
tdb->canPack = TRUE;
else if (sameString(tdb->type, "bigNarrowPeak"))
tdb->canPack = TRUE;
else if (sameString(tdb->type, "hic"))
tdb->canPack = TRUE;