a6d90ca7ebf3efec499da8d81d4f8fdfea5098fa max Wed Dec 17 09:31:35 2014 -0800 adding a bit of javascript to the wiggle drawing options that grey outthe min/max fields if auto-scaling is "on". Also move the auto-scaling dropdown box up one line, so it's easier to see that a part below is greyed out. refs #14561 diff --git src/hg/lib/hui.c src/hg/lib/hui.c index 8ce9737..626f405 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -4603,30 +4603,53 @@ { char *canDoCoverage = cfgOptionEnvDefault("HGDB_CAN_DO_COVERAGE", CanDoCoverageConfVariable, "off"); if (differentString(canDoCoverage, "on")) return; printf("<BR><B>Display data as a density graph:</B> "); char varName[64]; safef(varName, sizeof(varName), "%s.doWiggle", name); boolean option = cartUsualBoolean(cart, varName, FALSE); cgiMakeCheckBox(varName, option); printf("<BR>\n"); wigCfgUi(cart,tdb,name,title,TRUE); } +void wiggleScaleDropDownJavascript(char *name) +/* print some js that deactivates the min/max range if autoscaling is activated */ +{ +printf("<script type=\"text/javascript\">\n"); +printf(" $(\"[name='%s.autoScale']\").change(function()\n", name); +printf(" {\n"); +printf(" val= $(this).find(':selected').val(); \n"); +printf(" if (val==\"auto-scale to data view\")\n"); +printf(" {\n"); +printf(" $(\"[name='%s.minY']\")[0].disabled=true;\n", name); +printf(" $(\"[name='%s.maxY']\")[0].disabled=true;\n", name); +printf(" $(\".%sAutoScaleDesc\").attr('style', 'color:grey;');\n", name); +printf(" }\n"); +printf(" else\n"); +printf(" {\n"); +printf(" $(\"[name='%s.minY']\")[0].disabled=false;\n", name); +printf(" $(\"[name='%s.maxY']\")[0].disabled=false;\n", name); +printf(" $(\".%sAutoScaleDesc\").attr('style', 'color:black;');\n", name); +printf(" }\n"); +printf(" });\n"); +printf("</script>\n"); +} + void wigCfgUi(struct cart *cart, struct trackDb *tdb, char *name, char *title, boolean boxed) /* UI for the wiggle track */ { char *typeLine = NULL; /* to parse the trackDb type line */ char *words[8]; /* to parse the trackDb type line */ int wordCount = 0; /* to parse the trackDb type line */ char option[256]; double minY; /* from trackDb or cart */ double maxY; /* from trackDb or cart */ double tDbMinY; /* data range limits from trackDb type line */ double tDbMaxY; /* data range limits from trackDb type line */ int defaultHeight; /* pixels per item */ char *horizontalGrid = NULL; /* Grid lines, off by default */ char *transformFunc = NULL; /* function to transform data points */ char *alwaysZero = NULL; /* Always include 0 in range */ @@ -4690,49 +4713,50 @@ wiggleGraphDropDown(option, lineBar); if (boxed) { printf("</td><td align=right colspan=2>"); printf("<A HREF=\"%s\" TARGET=_blank>Graph configuration help</A>",WIGGLE_HELP_PAGE); } puts("</td></TR>"); printf("<TR valign=center><th align=right>Track height:</th><td align=left colspan=3>"); safef(option, sizeof(option), "%s.%s", name, HEIGHTPER ); cgiMakeIntVarWithLimits(option, defaultHeight, "Track height",0, minHeightPixels, maxHeightPixels); printf("pixels (range: %d to %d)", minHeightPixels, maxHeightPixels); puts("</TD></TR>"); -printf("<TR valign=center><th align=right>Vertical viewing range:</th>" - "<td align=left> min: "); +printf("<TR valign=center><th align=right>Data view scaling:</th><td align=left colspan=3>"); +safef(option, sizeof(option), "%s.%s", name, AUTOSCALE ); +wiggleScaleDropDown(option, autoScale); +wiggleScaleDropDownJavascript(name); +safef(option, sizeof(option), "%s.%s", name, ALWAYSZERO); +printf("Always include zero: "); +wiggleAlwaysZeroDropDown(option, alwaysZero); +puts("</TD></TR>"); + +printf("<TR class=\"%sAutoScaleDesc\" valign=center><th align=right>Vertical viewing range:</th>" + "<td align=left> min: ", name); safef(option, sizeof(option), "%s.%s", name, MIN_Y ); cgiMakeDoubleVarWithLimits(option, minY, "Range min", 0, NO_VALUE, NO_VALUE); printf("</td><td align=leftv colspan=2>max: "); safef(option, sizeof(option), "%s.%s", name, MAX_Y ); cgiMakeDoubleVarWithLimits(option, maxY, "Range max", 0, NO_VALUE, NO_VALUE); printf(" (range: %g to %g)", tDbMinY, tDbMaxY); puts("</TD></TR>"); -printf("<TR valign=center><th align=right>Data view scaling:</th><td align=left colspan=3>"); -safef(option, sizeof(option), "%s.%s", name, AUTOSCALE ); -wiggleScaleDropDown(option, autoScale); -safef(option, sizeof(option), "%s.%s", name, ALWAYSZERO); -printf("Always include zero: "); -wiggleAlwaysZeroDropDown(option, alwaysZero); -puts("</TD></TR>"); - printf("<TR valign=center><th align=right>Transform function:</th><td align=left>"); safef(option, sizeof(option), "%s.%s", name, TRANSFORMFUNC); printf("Transform data points by: "); wiggleTransformFuncDropDown(option, transformFunc); printf("<TR valign=center><th align=right>Windowing function:</th><td align=left>"); safef(option, sizeof(option), "%s.%s", name, WINDOWINGFUNCTION ); wiggleWindowingDropDown(option, windowingFunction); printf("<th align=right>Smoothing window:</th><td align=left>"); safef(option, sizeof(option), "%s.%s", name, SMOOTHINGWINDOW ); wiggleSmoothingDropDown(option, smoothingWindow); puts(" pixels</TD></TR>"); printf("<th align=right>Negate values:</th><td align=left>");