fa0ff693583dbd90241f3bd3b2dce6eafd974d6a chmalee Mon May 4 14:17:20 2026 -0700 Add a basic description page for myVariants tracks, refs #38808 diff --git src/hg/lib/customFactory.c src/hg/lib/customFactory.c index 3be82da25ab..d8582385429 100644 --- src/hg/lib/customFactory.c +++ src/hg/lib/customFactory.c @@ -3442,30 +3442,37 @@ struct lineFile *lf = cpp->fileStack; lineFileExpectAtLeast(lf, 3, wordCount); if (fieldCount == 0) fieldCount = wordCount; else if (fieldCount != wordCount) { errAbort("error: some lines in myVariants type custom track have %d fields, others have %d", fieldCount, wordCount); } struct myVariants *item = myVariantsFromRow(row, wordCount); customFactoryCheckChromNameDb(ctDb, item->chrom, lf); slAddHead(&list, item); } track->dbTrackType = cloneString("myVariants"); track->tdb->type = cloneString("myVariants"); +if (isEmpty(track->tdb->html)) + { + char descPath[PATH_LEN]; + safef(descPath, sizeof descPath, "%s/inc/myVariantsDesc.html", hDocumentRoot()); + if (fileExists(descPath)) + readInGulp(descPath, &track->tdb->html, NULL); + } /* tdb->shortLabel holds the name= value from the track line at this point. * Use it for track/table identity, then override the display labels * from the shortLabel/longLabel settings if present. */ track->tdb->table = track->tdb->shortLabel; track->tdb->track = track->tdb->shortLabel; char *sl = trackDbSetting(track->tdb, "shortLabel"); if (isNotEmpty(sl)) track->tdb->shortLabel = cloneString(sl); char *ll = trackDbSetting(track->tdb, "longLabel"); if (isNotEmpty(ll)) track->tdb->longLabel = cloneString(ll); return track; } static struct customFactory myVariantsFactory =