d543bdd5f9407b7373c73a3cab930c389971287b jcasper Mon Mar 23 09:27:15 2026 -0700 Ongoing faceted composite modifications - collapsible facets, chips for selected facets, moving the show-only-selected element. Also first pass at using a CGI to fetch the metadata file, refs #36320 diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c index 159922689e5..cd3185f9527 100644 --- src/hg/hgTrackUi/hgTrackUi.c +++ src/hg/hgTrackUi/hgTrackUi.c @@ -3186,32 +3186,33 @@ if (nameEnd && nameEnd > nameStart) { const int nameLen = nameEnd - nameStart; printf("%s\"%.*s\"", COMMA_IF(not_first), nameLen, nameStart); } } } hashElFreeList(&elList); } printf(closeDataElementsJSON); printf(",\"mdid\": \"%s\"", metaDataId); printf(",\"primaryKey\": \"%s\"", primaryKey); // must exist if (maxCheckboxes) // only if present in trackDb.settings entry printf(",\"maxCheckboxes\": \"%s\"", maxCheckboxes); if (colorSettingsUrl) // only if present in trackDb.settings entry - printf(",\"colorSettingsUrl\": \"%s\"", colorSettingsUrl); -printf(",\"metadataUrl\": \"%s\"", metaDataUrl); + printf(",\"colorSettingsUrl\": \"%s\"", cgiEncode((char*) colorSettingsUrl)); +printf(",\"metadataUrl\": \"%s\"", cgiEncode((char*) metaDataUrl)); +printf(",\"track\": \"%s\"", tdb->track); printf(closeJSON); /* --- END embedded JSON data --- */ printf(metadataTableScriptElement); // cleanup slPairFreeValsAndList(&dataTypes); hashFree(&defaultOn); } void specificUi(struct trackDb *tdb, struct trackDb *tdbList, struct customTrack *ct, boolean ajax) /* Draw track specific parts of UI. */ { char *track = tdb->track; char *db = database; @@ -3721,30 +3722,31 @@ 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;