563146be9664746e041d2629fbae46f86283ac6a kate Mon Jan 25 15:37:03 2016 -0800 Persist ordering in tissue table (using sortOrder cart var) diff --git src/hg/lib/gtexUi.c src/hg/lib/gtexUi.c index d385542..e4ae2cd 100644 --- src/hg/lib/gtexUi.c +++ src/hg/lib/gtexUi.c @@ -119,94 +119,98 @@ if (hashNumEntries(checkHash) == 0) tsel->checked = TRUE; else tsel->checked = (hashLookup(checkHash, tis->name) != NULL); slAddHead(&allTissues, tsel); } slReverse(&allTissues); makeGroupCheckboxes(name, NULL, allTissues); puts(""); char buf[512]; safef(buf, sizeof(buf), "%s%s", cgiMultListShadowPrefix(), name); cgiMakeHiddenVar(buf, "0"); } static void makeTableTissueCheckboxes(char *name, struct gtexTissue *tissues, - struct slName *checked, boolean isPopup) + struct slName *checked, struct cart *cart) { char *onClick = ""; -// Sortable table can't be activated when in activated from right-click (popup mode) -if (!isPopup) +// Sortable table can't be displayed when UI is activated from right-click (popup mode) +if (!cartVarExists(cart, "ajax")) { jsIncludeFile("hui.js", NULL); onClick = "'tableSortAtButtonPress(this);"; } struct hash *checkHash = hashNew(0); struct slName *sel; for (sel = checked; sel != NULL; sel = sel->next) hashAdd(checkHash, sel->name, sel->name); //puts("
\n", - "gtexGene.sortOrder", "tissue=+ samples=+ organ=+ system=+"); + orderVar, sortOrder); puts(" | "); printf(" | Tissue | ", onClick); printf("Samples | ", onClick); printf("Organ | ", onClick); printf("System | ", onClick); puts("\n
---|---|---|---|---|---|
", name, tis->name, isChecked ? "checked" : ""); // color patch printf("\n%s", makeTissueColorPatch(tis)); // tissue name printf("\n | %s | ", tis->description); // sample count int samples = hashIntValDefault(tscHash, tis->name, 0); printf("\n%d | ", samples, samples); // organ printf("\n%s | ", tis->organ); // system printf("\n%s | ", getSystem(tis)); + puts("\n
",boxed?" width='100%'":"");
char cartVar[1024];
char *selected = NULL;
/* Sample selection */
printf("Samples: ");
-safef(cartVar, sizeof(cartVar), "%s.%s", name, GTEX_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);
printf("All\n");
cgiMakeRadioButton(cartVar, GTEX_SAMPLES_COMPARE_SEX, !isAllSamples);
printf("Compare by gender\n");
printf("");
/* Comparison type */
printf(" Comparison display:\n"); -safef(cartVar, sizeof(cartVar), "%s.%s", name, GTEX_COMPARISON_DISPLAY); +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"); cgiMakeRadioButton(cartVar, GTEX_COMPARISON_MIRROR, isMirror); printf("Two graphs\n"); printf(" "); /* Data transform */ printf("Log10 transform:\n");
-safef(cartVar, sizeof(cartVar), "%s.%s", name, GTEX_LOG_TRANSFORM);
+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", name, GTEX_MAX_LIMIT);
+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);
printf(" RPKM (range 10-180000) Tissue colors:\n"); -safef(cartVar, sizeof(cartVar), "%s.%s", name, GTEX_COLORS); +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(" "); /* Tissue filter */ printf("Tissue selection:\n"); -safef(cartVar, sizeof(cartVar), "%s.%s", name, GTEX_TISSUE_SELECT); +safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_TISSUE_SELECT); jsMakeCheckboxGroupSetClearButton(cartVar, TRUE); puts(" "); jsMakeCheckboxGroupSetClearButton(cartVar, FALSE); struct gtexTissue *tissues = gtexGetTissues(); struct slName *selectedValues = NULL; if (cartListVarExistsAnyLevel(cart, tdb, FALSE, GTEX_TISSUE_SELECT)) selectedValues = cartOptionalSlNameListClosestToHome(cart, tdb, FALSE, GTEX_TISSUE_SELECT); char *selectType = cgiUsualString("tis", "table"); if (sameString(selectType, "group")) makeGroupedTissueCheckboxes(cartVar, tissues, selectedValues); else if (sameString(selectType, "table")) - makeTableTissueCheckboxes(cartVar, tissues, selectedValues, isPopup); + makeTableTissueCheckboxes(cartVar, tissues, selectedValues, cart); else makeAllTissueCheckboxes(cartVar, tissues, selectedValues); cfgEndBox(boxed); } |