b9d7723866095088387017765ea962f83e87bbfd kate Wed May 6 16:23:13 2020 -0700 Add supertrack to supertrack member title bar. Part of attempt to make supertrack member UI page easier to understand (show hierarchy but subtly). refs #24948 diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c index 3466481..0fafe9e 100644 --- src/hg/hgTrackUi/hgTrackUi.c +++ src/hg/hgTrackUi/hgTrackUi.c @@ -3420,31 +3420,31 @@ // NAVLINKS - For pages w/ matrix, add Description, Subtracks and Downloads links if (trackDbSetting(tdb, "dimensions") || (trackDbSetting(tdb, "wgEncode") && tdbIsComposite(tdb))) { printf("\n <span id='navDown' style='float:right; display:none;'>"); if (trackDbSetting(tdb, "wgEncode") && isEncode2(database, tdb->track)) { printf("<A TARGET=_BLANK HREF='../ENCODE/index.html' TITLE='ENCODE Portal'>ENCODE at UCSC</A>"); printf(" "); makeDownloadsLink(database, tdb); } char *downArrow = "⇓"; enum browserType browser = cgiBrowser(); if (browser == btIE || browser == btFF) downArrow = "↓"; - printf(" <A HREF='#DISPLAY_SUBTRACKS' TITLE='Jump to subtracks section of " + printf(" <A HREF='#DISPLAY_SUBTRACKS' TITLE='Jump to subtrack list section of " "page'>Subtracks%s</A>", downArrow); printf(" <A HREF='#TRACK_HTML' TITLE='Jump to description section of page'>" "Description%s</A>", downArrow); if (trackDbSetting(tdb, "wgEncode") && isEncode2(database, tdb->track)) { printf(" <A HREF='#TRACK_CREDITS' TITLE='Jump to ENCODE lab contacts for this data'>" "Contact%s</A>", downArrow); } printf(" </span>"); } } if (!tdbIsSuperTrack(tdb) && !tdbIsComposite(tdb)) puts("<BR>"); if (tdbIsDownloadsOnly(tdb)) // Composites without tracks but with files to download @@ -3601,44 +3601,55 @@ else if (isHubTrack(track)) { tdb = hubConnectAddHubForTrackAndFindTdb(database, track, &tdbList, trackHash); } else if (sameString(track, "hgPcrResult")) tdb = pcrResultFakeTdb(); else { tdb = tdbForTrack(database, track,&tdbList); } if (tdb == NULL) { errAbort("Can't find %s in track database %s chromosome %s", track, database, chromosome); } -char *title = (tdbIsSuper(tdb) ? "Super-track Settings" : - tdbIsDownloadsOnly(tdb) ? DOWNLOADS_ONLY_TITLE : "Track Settings"); if(cartOptionalString(cart, "ajax")) { // html is going to be used w/n a dialog in hgTracks.js so serve up stripped down html // still need CSP2 header for security printf("%s", getCspMetaHeader()); trackUi(tdb, tdbList, ct, TRUE); cartRemove(cart,"ajax"); jsInlineFinish(); } else { - cartWebStart(cart, database, "%s %s", tdb->shortLabel, title); + char title[1000]; + if (tdb->parent) + { + safef(title, sizeof title, + // TODO: replace in-line styling with class + "<span style='background-color: #c3d4f4; padding-left: 10px; margin-left: -8px;'>" + "%s </span> %s", + tdb->parent->shortLabel, tdb->shortLabel); + } + else + safef(title, sizeof title, "%s", tdb->shortLabel); + char *titleEnd = (tdbIsSuper(tdb) ? "" : + tdbIsDownloadsOnly(tdb) ? DOWNLOADS_ONLY_TITLE : "Track Settings"); + cartWebStart(cart, database, "%s %s", title, titleEnd); trackUi(tdb, tdbList, ct, FALSE); printf("<BR>\n"); jsonPrintGlobals(); webEnd(); } } char *excludeVars[] = { "submit", "Submit", "g", NULL, "ajax", NULL,}; int main(int argc, char *argv[]) /* Process command line. */ { long enteredMainTime = clock1000(); cgiSpoof(&argc, argv); cartEmptyShell(doMiddle, hUserCookie(), excludeVars, NULL);