624776f628c3257193e39187f02b5624d3b58b53 kate Mon Oct 17 16:36:51 2016 -0700 Add track description. refs #17369 diff --git src/hg/hgGtexTrackSettings/hgGtexTrackSettings.c src/hg/hgGtexTrackSettings/hgGtexTrackSettings.c index 3b072a8..81bb4a5 100644 --- src/hg/hgGtexTrackSettings/hgGtexTrackSettings.c +++ src/hg/hgGtexTrackSettings/hgGtexTrackSettings.c @@ -18,53 +18,70 @@ #include "jsHelper.h" #include "jsonParse.h" #include "obscure.h" // for readInGulp #include "regexHelper.h" #include "suggest.h" #include "trackHub.h" #include "trix.h" #include "web.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 */ +char *db = NULL; static void doCartJson() /* Perform UI commands to update the cart and/or retrieve cart vars & metadata. */ { struct cartJson *cj = cartJsonNew(cart); //e.g. cartJsonRegisterHandler(cj, "setTaxId", setTaxId); cartJsonExecute(cj); } static void doJsIncludes() /* Include JS libraries. From hgGateway (think about libifying) */ { //puts("<script src=\"../js/es5-shim.4.0.3.min.js\"></script>"); //puts("<script src=\"../js/es5-sham.4.0.3.min.js\"></script>"); //puts("<script src=\"../js/lodash.3.10.0.compat.min.js\"></script>"); puts("<script src=\"../js/cart.js\"></script>"); webIncludeResourceFile("jquery-ui.css"); jsIncludeFile("jquery-ui.js", NULL); jsIncludeFile("jquery.watermarkinput.js", NULL); jsIncludeFile("utils.js",NULL); } +static void printTrackDescription() +{ +puts("<div class='row gbSectionBanner gbSimpleBanner'>Track Description</div>"); +puts("<a name='TRACK_HTML'></a>"); +struct sqlConnection *conn = sqlConnect(db); +char query[256]; +sqlSafef(query, sizeof(query), "select html from trackDb where tableName='gtexGene'"); +char *html = sqlQuickString(conn, query); +sqlDisconnect(&conn); +puts("<div class='trackDescriptionPanel'>"); +puts("<div class='trackDescription'>"); +puts(html); +puts("</div></div>"); +puts("</div>"); +} + static void printTissueTable(char *version) /* Output HTML with tissue labels and colors, in 2 columns, to fit next to body map */ { struct gtexTissue *tis, *tissues = gtexGetTissues(version); 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("<table class='tissueTable'>"); puts("<tr>"); for (tis = tissues; tis != NULL; tis = tis->next) { @@ -83,57 +100,62 @@ col++; if (col > cols-1) { puts("</tr>\n<tr>"); col = 0; } } puts("</tr>\n"); puts("</table>"); } static void doMainPage() /* Send HTML with javascript to bootstrap the user interface. */ { // Start web page with new banner -char *db = NULL, *genome = NULL, *clade = NULL; +char *genome = NULL, *clade = NULL; getDbGenomeClade(cart, &db, &genome, &clade, oldVars); // char *chromosome = cartUsualString(cart, "c", hDefaultChrom(database)); //char *track = cartString(cart, "g"); webStartJWestNoBanner(cart, db, "Genome Browser GTEx Track Settings"); puts("<link rel=\"stylesheet\" href=\"../style/bootstrap.min.css\">"); puts("<link rel=\"stylesheet\" href=\"../style/hgGtexTrackSettings.css\">"); // The initial visible page elements are hgGtexTrackSettings.html, // which is transformed into a quoted .h // file containing a string constant that we #include and print here (see makefile). puts( #include "hgGtexTrackSettings.html.h" ); //struct tdb *tdbList = NULL; //struct trackDb *tdb = tdbForTrack(db, track, &tdbList); //printTissueTable(gtexGetVersion(tdb->table)); char *table = "gtexGene"; printTissueTable(gtexVersion(table)); +puts("</div></div></div></div>"); + +printTrackDescription(); +puts("</div>"); // end panel, section and body layout container -puts("</div></div></div"); + +// Track description // JS libraries doJsIncludes(); // Main JS puts("<script src=\"../js/hgGtexTrackSettings.js\"></script>"); webIncludeFile("inc/jWestFooter.html"); webEndJWest(); } void doMiddle(struct cart *theCart) /* Display the main page or execute a command and update the page */