12d023ae3337d8909508d543d9d78c99758b25c5 braney Mon Sep 2 10:29:34 2019 -0700 add cumulative auto-scaling to composites and views. Remove REMOTE_TRACK_AJAX_CALLBACK stuff that was apparently an experiment from ten years ago. diff --git src/hg/lib/hui.c src/hg/lib/hui.c index 9d8ea11..e77692a 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -1655,49 +1655,63 @@ char *wiggleYLineMarkEnumToString(enum wiggleYLineMarkEnum x) /* Convert from enum to string representation. */ { return wiggleYLineMarkOptions[x]; } void wiggleYLineMarkDropDown(char *var, char *curVal) /* Make drop down of options. */ { cgiMakeDropList(var, wiggleYLineMarkOptions, ArraySize(wiggleYLineMarkOptions), curVal); } /****** Options for the wiggle track AutoScale *******/ +static char *wiggleScaleOptionsParent[] = + { + "use vertical viewing range setting", + "auto-scale to data view", + "cumulatively auto-scale to data view" + }; + static char *wiggleScaleOptions[] = { "use vertical viewing range setting", "auto-scale to data view" }; enum wiggleScaleOptEnum wiggleScaleStringToEnum(char *string) /* Convert from string to enum representation. */ { -int x = stringIx(string, wiggleScaleOptions); +int x = stringIx(string, wiggleScaleOptionsParent); if (x < 0) errAbort("hui::wiggleScaleStringToEnum() - Unknown option %s", string); return x; } char *wiggleScaleEnumToString(enum wiggleScaleOptEnum x) /* Convert from enum to string representation. */ { -return wiggleScaleOptions[x]; +return wiggleScaleOptionsParent[x]; +} + +void wiggleScaleDropDownParent(char *var, char *curVal) +/* Make drop down of options. */ +{ +cgiMakeDropList(var, wiggleScaleOptionsParent, ArraySize(wiggleScaleOptionsParent), + curVal); } void wiggleScaleDropDown(char *var, char *curVal) /* Make drop down of options. */ { cgiMakeDropList(var, wiggleScaleOptions, ArraySize(wiggleScaleOptions), curVal); } /****** Options for the wiggle track type of graph *******/ static char *wiggleGraphOptions[] = { "points", "bar", @@ -5204,31 +5218,31 @@ hashAdd(tdb->settingsHash, WINDOWINGFUNCTION, wiggleWindowingEnumToString( wiggleWindowingMax)); wigCfgUi(cart,tdb,name,title,TRUE); tdb->type = origType; printf("</DIV>\n\n"); jsInlineF("$(\"input[name='%s']\").click( function() { $('#densGraphOptions').toggle();} );\n" , varName); // XSS FILTER? } void wiggleScaleDropDownJavascript(char *name) /* print some js that deactivates the min/max range if autoscaling is activated */ { struct dyString *dy = dyStringNew(1024); dyStringPrintf(dy, " $(\"[name='%s.autoScale']\").change(function()\n", name); dyStringPrintf(dy, " {\n"); dyStringPrintf(dy, " val= $(this).find(':selected').val(); \n"); -dyStringPrintf(dy, " if (val==\"auto-scale to data view\")\n"); +dyStringPrintf(dy, " if (val!=\"use vertical viewing range setting\")\n"); dyStringPrintf(dy, " {\n"); dyStringPrintf(dy, " $(\"[name='%s.minY']\")[0].disabled=true;\n", name); dyStringPrintf(dy, " $(\"[name='%s.maxY']\")[0].disabled=true;\n", name); dyStringPrintf(dy, " $(\".%sAutoScaleDesc\").attr('style', 'color:grey;');\n", name); dyStringPrintf(dy, " }\n"); dyStringPrintf(dy, " else\n"); dyStringPrintf(dy, " {\n"); dyStringPrintf(dy, " $(\"[name='%s.minY']\")[0].disabled=false;\n", name); dyStringPrintf(dy, " $(\"[name='%s.maxY']\")[0].disabled=false;\n", name); dyStringPrintf(dy, " $(\".%sAutoScaleDesc\").attr('style', 'color:black;');\n", name); dyStringPrintf(dy, " }\n"); dyStringPrintf(dy, " });\n"); dyStringPrintf(dy, "\n"); dyStringPrintf(dy, " $( document ).ready(function()\n"); dyStringPrintf(dy, " {\n"); @@ -5349,30 +5363,33 @@ { 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>Data view scaling:</th><td align=left colspan=3>"); safef(option, sizeof(option), "%s.%s", name, AUTOSCALE ); +if (parentLevel && !tdbIsMultiTrack(tdb->parent)) + wiggleScaleDropDownParent(option, autoScale); +else 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); if (!isCustomComposite(tdb))