8593c40cb74ab6ee9f2318056626305d9d9544d3 braney Fri Apr 10 12:54:44 2026 -0700 Fix color picker from code review, refs #37329, refs #20460 - Replace Spectrum JS color picker with native HTML5 color input, matching existing Hi-C picker - Color saved on form submit, not immediately via AJAX - Add checkbox to enable/disable color override; auto-checks when user picks a color - Gate color picker behind hg.conf showColorPicker=on (off by default) - Only show picker for non-composite tracks that support it: bed, bigBed, genePred, bigGenePred, wig, bigWig, rmsk, interact, bigInteract, bigLolly, vcfTabix, vcf - Add colorFromCart calls to interact, lolly, vcf phased, and pgSnp drawing code - Revert hui.js Spectrum changes from cfeb4d4 (no longer needed) - Use htmlColorForCode()/htmlColorToRGB() from htmlColor.h instead of hand-rolled hex parsing in colorFromCart Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c index 07826d0470d..15821d3d835 100644 --- src/hg/hgTracks/simpleTracks.c +++ src/hg/hgTracks/simpleTracks.c @@ -12015,30 +12015,31 @@ else if (startsWith("C", allele)) color = MG_BLUE; else if (startsWith("G", allele)) color = darkGreenColor; else if (startsWith("T", allele)) color = MG_MAGENTA; } hvGfxTextRight(hvgWhich, textX, y, width, height, color, font, allele); hvGfxUnclip(hvgWhich); hvGfxSetClip(hvgWhich, clipX, clipY, clipWidth, clipHeight); } void pgSnpDrawAt(struct track *tg, void *item, struct hvGfx *hvg, int xOff, int y, double scale, MgFont *font, Color color, enum trackVisibility vis) /* Draw the personal genome SNPs at a given position. */ { +color = colorFromCart(tg, color); struct pgSnp *myItem = item; boolean cmpl = cartUsualBooleanDb(cart, database, COMPLEMENT_BASES_VAR, FALSE); char *display = "freq"; //cartVar? if (revCmplDisp) cmpl = !cmpl; if (vis == tvSquish || vis == tvDense || myItem->alleleCount > 2) { withIndividualLabels = TRUE; //haven't done label for this one bedDrawSimpleAt(tg, myItem, hvg, xOff, y, scale, font, color, vis); return; } /* get allele(s) to display */ char *allele[8]; char *freq[8];