774cdab50f95e18aad73b455a907158c44f76f9e kate Mon Apr 3 16:49:52 2017 -0700 Fix twitchy layout of vis drop-down (lose bolding of Go, seemed a bit excessive anyway). Add pointer cursor to drop-down while the hood is up. refs #18556 diff --git src/hg/hgGtexTrackSettings/hgGtexTrackSettings.c src/hg/hgGtexTrackSettings/hgGtexTrackSettings.c index 1dd7c0b..7b24767 100644 --- src/hg/hgGtexTrackSettings/hgGtexTrackSettings.c +++ src/hg/hgGtexTrackSettings/hgGtexTrackSettings.c @@ -8,80 +8,82 @@ #include "cart.h" #include "portable.h" #include "cheapcgi.h" #include "web.h" #include "hCommon.h" #include "hui.h" #include "jsHelper.h" #include "gtexUi.h" #include "gtexInfo.h" #include "gtexTissue.h" /* Global Variables */ struct cart *cart = NULL; /* CGI and other variables */ struct hash *oldVars = NULL; /* Old contents of cart before it was updated by CGI */ +static void printGoButton() +/* HTML for GO button and 'play' icon */ +{ +puts( +" <div class='gbButtonGoContainer text-right' title='Go to the Genome Browser'>\n" +" <div class='gbButtonGo'>GO</div>\n" +" <i class='gbIconGo fa fa-play fa-2x'></i>\n" +" </div>\n" +); +} + +static void printBodyMap() +/* Include BodyMap SVG in HTML */ +{ +puts( +" <!-- Body Map panel -->\n" +" <object id='bodyMapSvg' type='image/svg+xml' data='/images/gtexBodyMap.svg'>\n" +" GTEx Body Map illustration not found\n" +" </object>\n"); +puts("<div class='gbmCredit'>Credit: jwestdesign</div>\n"); +} + static void printTrackHeader(char *db, struct trackDb *tdb) /* Print top banner with track labels */ // TODO: Try to simplify layout { char *assembly = stringBetween("(", ")", hFreezeFromDb(db)); puts( "<a name='TRACK_TOP'></a>\n" " <div class='row gbTrackTitleBanner'>\n" " <div class='col-md-10'>\n" ); printf( " <span class='gbTrackName'>\n" " %s Track\n" " <span class='gbAssembly'> %s </span>\n" " </span>" " <span class='gbTrackTitle'> %s </span>\n" , tdb->shortLabel, assembly, tdb->longLabel); puts( "<!-- Info icon built from stacked fa icons -->\n" " <a href='#INFO_SECTION' title='Jump to the track description'>\n" " <span class='gbIconSmall fa-stack'>\n" " <i class='gbBlueDarkColor fa fa-circle fa-stack-2x'></i>\n" " <i class='gbWhiteColor fa fa-info fa-stack-1x'></i>\n" " </span></a>\n" " </div>\n" " <div class='col-md-2 text-right'>\n" -" <div class='gbButtonGoContainer' title='Go to the Genome Browser'>\n" -" <div class='gbButtonGo'>GO</div>\n" -" <i class='gbIconGo fa fa-play fa-2x'></i>\n" -" </div>\n" -" </div>\n" -" </div>\n"); -} - -static void printBodyMap() -{ -puts( -" <!-- Body Map panel -->\n" -" <object id='bodyMapSvg' type='image/svg+xml' data='/images/gtexBodyMap.svg'>\n" -" GTEx Body Map illustration not found\n" -" </object>\n"); -puts("<div class='gbmCredit'>Credit: jwestdesign</div>\n"); -} - -static void printGoButton() -{ +); +printGoButton(); puts( -" <div class='gbButtonGoContainer' title='Go to the Genome Browser'>\n" -" <div class='gbButtonGo'>GO</div>\n" -" <i class='gbIconGo fa fa-play fa-2x'></i>\n" +" </div>\n" " </div>\n" ); } static void printVisSelect(struct trackDb *tdb) /* Track visibility dropdown */ { enum trackVisibility vis = tdb->visibility; vis = hTvFromString(cartUsualString(cart, tdb->track, hStringFromTv(vis))); boolean canPack = TRUE; hTvDropDownClassVisOnlyAndExtra(tdb->track, vis, canPack, "gbSelect normalText visDD", trackDbSetting(tdb, "onlyVisibility"), NULL); } static void printScoreFilter(struct cart *cart, char *track, struct trackDb *tdb) @@ -93,31 +95,31 @@ int score = cartUsualInt(cart, buf, 0); int minScore = 0, maxScore = 1000; cgiMakeIntVarWithLimits(buf, score, "Minimum score", 0, minScore, maxScore); printf( " (range %d-%d)\n", minScore, maxScore); } static void printConfigPanel(struct trackDb *tdb) /* Controls for track configuration (except for tissues) */ { char *track = tdb->track; puts( " <!-- Configuration panel -->\n" " <div class='row gbSectionBanner'>\n" " <div class='col-md-8'>Configuration</div>\n" -" <div class='col-md-4 gbButtonContainer text-right'>\n"); +" <div class='col-md-4 text-right'>\n"); /* Track vis dropdown */ printVisSelect(tdb); printGoButton(); puts( " </div>\n" " </div>\n"); /* GTEx-specific track controls, layout in 3 rows */ puts( " <!-- row 1 -->\n" " <div class='row'>\n" " <div class='gbControl col-md-5'>\n"); gtexGeneUiGeneLabel(cart, track, tdb); puts( @@ -170,31 +172,31 @@ struct hash *selectedHash = cartHashList(cart, var); struct gtexTissue **tisTable = NULL; int count = slCount(tissues); AllocArray(tisTable, count); int i=0, col=0; int cols = 2; int last = count/2 + 1; puts( " <!-- Tissue list -->\n" "<div class='row gbSectionBanner'>\n" " <div class='col-md-1'>Tissues</div>\n" " <div class='col-md-7 gbSectionInfo'>\n" " Click label below or in Body Map to set or clear a tissue\n" " </div>\n" - " <div class='col-md-4 gbButtonContainer'>\n" + " <div class='col-md-4 gbButtonContainer text-right'>\n" " <div id='setAll' class='gbButtonSetClear gbButton'>set all</div>\n" " <div id='clearAll' class='gbButtonSetClear gbButton'>clear all</div>\n" " </div>\n" "</div>\n" ); puts( "<table class='gbmTissueTable'>\n"); puts( "<tr>\n"); for (tis = tissues; tis != NULL; tis = tis->next) { if (tis->id < last) i = tis->id * 2; else