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>&nbsp;&nbsp;&nbsp;&nbsp;</th>");
 printf("<th id='tissue' class='%s sort1' %s align='left'>&nbsp;Tissue</th>", 
                sortableClass, onClick);
 printf("<th id='samples' abbr='use' class='%s sort2' %s align='left'>&nbsp;Samples</th>", 
                sortableClass, onClick);
 printf("<th id='organ' class='%s sort3' %s align='left'>&nbsp;Organ</th>", 
                sortableClass, onClick);
 printf("<th id='system' class='%s sort4' %s align='left'>&nbsp;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("&nbsp;");
     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);
 }