41861d25a94c0578853ae4280d195d7d8ca2fcb4 kate Mon Mar 21 17:17:46 2016 -0700 Add version awareness to tissue handling. refs #15645 diff --git src/hg/lib/gtexUi.c src/hg/lib/gtexUi.c index f170f0b..7c0084d 100644 --- src/hg/lib/gtexUi.c +++ src/hg/lib/gtexUi.c @@ -114,31 +114,31 @@ } static void initTissueTableStyle() /* Reduce font in tissue table so more rows are visible. * Specify some colors.*/ { puts("<style>\n" "#tissueTable th, #tissueTable td {font-size: 75%; margin: 0px; border: 0px; padding: 0px}\n" "#tissueTable input {margin: 0px .5ex; width: 8px; height: 8px}\n" "#gtexGeneControls div {margin-bottom: .3em;}\n" ".notSortable {font-color: black;}\n" "</style>\n"); } static void makeTableTissueCheckboxes(char *name, struct gtexTissue *tissues, - struct slName *checked, struct cart *cart, char *track) + struct slName *checked, struct cart *cart, char *track, char *version) { initTissueTableStyle(); char *onClick = ""; // Sortable table can't be displayed when UI is activated from right-click (popup mode) if (!isPopup) { 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("<table borderwidth=0><tr>"); puts("\n<table id='tissueTable' cellspacing='1' cellpadding='0' border='0' class='sortable'>"); @@ -154,31 +154,31 @@ orderVar, sortOrder); puts("<th> </th>"); printf("<th id='tissue' class='%s sort1' %s align='left'> Tissue</th>", sortableClass, onClick); printf("<th id='samples' abbr='use' class='%s sort2' %s align='left'> Samples</th>", sortableClass, onClick); printf("<th id='organ' class='%s sort3' %s align='left'> Organ</th>", sortableClass, onClick); printf("<th id='system' class='%s sort4' %s align='left'> System</th>", sortableClass, onClick); puts("\n</tr>"); puts("</thead>"); /* table body */ printf("<tbody class='sortable noAltColors initBySortOrder'>"); -struct hash *tscHash = gtexGetTissueSampleCount(); +struct hash *tscHash = gtexGetTissueSampleCount(version); struct gtexTissue *tis; boolean isChecked = FALSE; for (tis = tissues; tis != NULL; tis = tis->next) { puts("\n<tr valign='top'>"); // checkbox if (hashNumEntries(checkHash) == 0) isChecked = TRUE; else isChecked = (hashLookup(checkHash, tis->name) != NULL); printf("<td><input type=checkbox name=\"%s\" value=\"%s\" %s %s></td>", name, tis->name, isChecked ? "checked" : "", isPopup ? "disabled" : ""); // color patch printf("\n%s", makeTissueColorPatch(tis)); @@ -353,30 +353,30 @@ /* Tissue filter */ printf("<br>"); printf("<div><b>Tissues:</b>\n"); safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_TISSUE_SELECT); if (isPopup) { printf("<a href='../cgi-bin/hgTrackUi?g=%s'><button type='button'>Change</button><a>", track); } else { jsMakeCheckboxGroupSetClearButton(cartVar, TRUE); puts(" "); jsMakeCheckboxGroupSetClearButton(cartVar, FALSE); } printf("</div>"); -struct gtexTissue *tissues = gtexGetTissues(); +struct gtexTissue *tissues = gtexGetTissues(version); 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, cart, track); + makeTableTissueCheckboxes(cartVar, tissues, selectedValues, cart, track, version); else makeAllTissueCheckboxes(cartVar, tissues, selectedValues); puts("\n</table>\n"); cfgEndBox(boxed); }