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> <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> <input type=hidden name='%s' class='sortOrder' value='%s'></th>\n", 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(); @@ -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> "); 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(" <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(" "); 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); }