3043345c244f6923a5ca24718e4768edd6368e9c
kate
  Thu Feb 4 14:04:57 2016 -0800
Fixes to Apply button on hgTrackUi popup.  Cosmetics on GTEx UI.

diff --git src/hg/lib/gtexUi.c src/hg/lib/gtexUi.c
index 9c92ea7..961d28a 100644
--- src/hg/lib/gtexUi.c
+++ src/hg/lib/gtexUi.c
@@ -137,42 +137,32 @@
     }
 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'>");
 
 /* table header */
 char orderVar[256];
 safef(orderVar, sizeof(orderVar), "%s.sortOrder", name);
 char *sortOrder = cartCgiUsualString(cart, orderVar, "tissue=+ samples=+ organ=+ system=+");
 puts("\n<thead class='sortable'>");
 puts("\n<tr class='sortable'>");
 char *sortableClass = isPopup ? "notSortable" : "sortable";
-if (isPopup)
-    {
-    printf("<th>&nbsp;&nbsp;<a style='color: blue; cursor: pointer; text-decoration: none' href='%s?g=%s' "
-         "title='To change the tissue selection, click the ?.'>?</a>",
-                "../cgi-bin/hgTrackUi", track); // Better to use hgTrackUiName(), but there's an issue
-                                                        //with header includes, so punting for now
-    }
-else
-    {
 printf("\n<th>&nbsp;<input type=hidden name='%s' class='sortOrder' value='%s'></th>\n",
         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();
@@ -278,40 +268,35 @@
         tsel->checked = (hashLookup(checkHash, tis->name) != NULL);
     slAddHead(&allTissues, tsel);
     }
 slReverse(&allTissues);
 makeGroupCheckboxes(name, NULL, allTissues);
 puts("</tr></table>");
 char buf[512];
 safef(buf, sizeof(buf), "%s%s", cgiMultListShadowPrefix(), name);
 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;
-    // force box to visually separate as some styling (e.g. font size) 
-    // may differ from generic UI
-    boxed = TRUE;
-    }
 
 boxed = cfgBeginBoxAndTitle(tdb, boxed, title);
 printf("\n<table id=gtexGeneControls style='font-size:%d%%' %s>\n<tr><td>", 
-        isPopup ? 50 : 100, boxed ?" width='100%'":"");
+        isPopup ? 75 : 100, boxed ?" width='100%'":"");
 
 char cartVar[1024];
 char *selected = NULL;
 
 /* Sample selection */
 printf("<div><b>Samples:</b>&nbsp;");
 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("</div>");
 
@@ -326,59 +311,64 @@
 printf("Two graphs\n");
 printf("</div>");
 
 /* Data transform */
 printf("<div><b>Log10 transform:</b>\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("&nbsp;&nbsp;<b>View limits maximum:</b>\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("</div>");
 
 /* 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("<p><b>Tissue colors:</b>\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("</p>");
 #endif
 
 /* Tissue filter */
 printf("<br>");
-if (!isPopup)
+printf("<div><b>Tissues:</b>\n");
+if (isPopup)
+    {
+    printf("<a href='../cgi-bin/hgTrackUi?g=%s'><button type='button'>Change</button><a>", track);
+    }
+else
     {
-    printf("<div><b>Tissue filter:</b>\n");
     safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_TISSUE_SELECT);
     jsMakeCheckboxGroupSetClearButton(cartVar, TRUE);
     puts("&nbsp;");
     jsMakeCheckboxGroupSetClearButton(cartVar, FALSE);
-    printf("</div>");
     }
+printf("</div>");
 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, cart, track);
 else
     makeAllTissueCheckboxes(cartVar, tissues, selectedValues);
 
 puts("\n</table>\n");
 cfgEndBox(boxed);
 }