7cd97c987844110762ef96424b1a9e97b5485dc6 kate Tue Feb 9 14:02:26 2016 -0800 Add JS to disable/enable GTEx gene track config controls when applicable. refs #15645 diff --git src/hg/lib/gtexUi.c src/hg/lib/gtexUi.c index 3cffce2..59f67f1 100644 --- src/hg/lib/gtexUi.c +++ src/hg/lib/gtexUi.c @@ -276,67 +276,74 @@ cgiMakeHiddenVar(buf, "0"); } void gtexGeneUi(struct cart *cart, struct trackDb *tdb, char *track, char *title, boolean boxed) /* GTEx (Genotype Tissue Expression) per gene data */ { if (cartVarExists(cart, "ajax")) isPopup = TRUE; boxed = cfgBeginBoxAndTitle(tdb, boxed, title); printf("\n
",
isPopup ? 75 : 100, boxed ?" width='100%'":"");
char cartVar[1024];
char *selected = NULL;
+char buf[512];
+
+/* Data transform. When selected, the next control (view limits max) is disabled */
+printf(" Log10 transform:\n");
+safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_LOG_TRANSFORM);
+boolean isLogTransform = cartCgiUsualBoolean(cart, cartVar, GTEX_LOG_TRANSFORM_DEFAULT);
+safef(buf, sizeof buf, "onchange='gtexTransformChanged(\"%s\")'", track);
+cgiMakeCheckBoxJS(cartVar, isLogTransform, buf);
+
+/* Viewing limits max. This control is disabled if log transform is selected */
+// construct class so JS can toggle
+safef(buf, sizeof buf, "%sViewLimitsMaxLabel %s", track, isLogTransform ? "disabled" : "");
+printf(" View limits maximum:\n", buf);
+safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_MAX_LIMIT);
+// TODO: set max from gtexInfo table
+int viewMax = cartCgiUsualInt(cart, cartVar, GTEX_MAX_LIMIT_DEFAULT);
+cgiMakeIntVarWithExtra(cartVar, viewMax, 4, isLogTransform ? "disabled" : "");
+printf(" RPKM (range 10-180000)\n", buf);
+printf(" ");
/* Sample selection */
printf("Samples: ");
safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_SAMPLES);
selected = cartCgiUsualString(cart, cartVar, GTEX_SAMPLES_DEFAULT);
boolean isAllSamples = sameString(selected, GTEX_SAMPLES_ALL);
-cgiMakeRadioButton(cartVar, GTEX_SAMPLES_ALL, isAllSamples);
+safef(buf, sizeof buf, "onchange='gtexSamplesChanged(\"%s\")'", track);
+char *command = buf;
+cgiMakeOnClickRadioButton(cartVar, GTEX_SAMPLES_ALL, isAllSamples, command);
printf("All\n");
-cgiMakeRadioButton(cartVar, GTEX_SAMPLES_COMPARE_SEX, !isAllSamples);
+cgiMakeOnClickRadioButton(cartVar, GTEX_SAMPLES_COMPARE_SEX, !isAllSamples, command);
printf("Compare by gender\n");
printf(" ");
-/* Comparison type */
-printf("Comparison display:\n");
+/* Comparison type. Disabled if All samples selected. */
+safef(buf, sizeof buf, "%sComparisonLabel %s", track, isAllSamples ? "disabled" : "");
+printf(" Comparison display:", buf);
safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_COMPARISON_DISPLAY);
selected = cartCgiUsualString(cart, cartVar, GTEX_COMPARISON_DEFAULT);
boolean isMirror = sameString(selected, GTEX_COMPARISON_MIRROR);
+
cgiMakeRadioButton(cartVar, GTEX_COMPARISON_DIFF, !isMirror);
-printf("Difference graph\n");
+printf("Difference graph", buf);
cgiMakeRadioButton(cartVar, GTEX_COMPARISON_MIRROR, isMirror);
-printf("Two graphs\n");
-printf(" ");
-
-/* Data transform */
-printf("Log10 transform:\n");
-safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_LOG_TRANSFORM);
-boolean isLogTransform = cartCgiUsualBoolean(cart, cartVar, GTEX_LOG_TRANSFORM_DEFAULT);
-cgiMakeCheckBox(cartVar, isLogTransform);
-
-/* Viewing limits max */
-printf(" View limits maximum:\n");
-safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_MAX_LIMIT);
-// TODO: set max and initial limits from gtexInfo table
-int viewMax = cartCgiUsualInt(cart, cartVar, GTEX_MAX_LIMIT_DEFAULT);
-cgiMakeIntVar(cartVar, viewMax, 4);
-//FIXME
-printf(" RPKM (range 10-180000)\n");
+printf("Two graphs\n", buf);
printf(" ");
/* Color scheme */
// We don't need the rainbow color scheme, but may want another (e.g. different
// colors for brain tissues), so leaving code in for now.
#ifdef COLOR_SCHEME
printf("Tissue colors:\n"); safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_COLORS); selected = cartCgiUsualString(cart, cartVar, GTEX_COLORS_DEFAULT); boolean isGtexColors = sameString(selected, GTEX_COLORS_GTEX); cgiMakeRadioButton(cartVar, GTEX_COLORS_GTEX, isGtexColors); printf("GTEx\n"); cgiMakeRadioButton(cartVar, GTEX_COLORS_RAINBOW, !isGtexColors); printf("Rainbow\n"); printf(" "); |