%s",
isChecked ? "gbmTissueSelected" : "", tis->name, tis->description);
// Hidden checkbox stores value for cart
printf(
"",
var, tis->name, isChecked ? "checked" : "");
puts(
"
");
col++;
if (col > cols-1)
{
puts("
\n
");
col = 0;
}
}
puts(
"
\n");
puts(
"
");
char buf[512];
safef(buf, sizeof(buf), "%s%s.%s", cgiMultListShadowPrefix(), tdb->track, GTEX_TISSUE_SELECT);
cgiMakeHiddenVar(buf, "0");
}
static void printTrackConfig(struct trackDb *tdb)
/* Print track configuration panels, including Body Map.
The layout is 2-column. Right column is body map SVG.
Left column has a top panel for configuration settings (non-tissue),
and a lower panel with a tissue selection list.
*/
{
puts(
"\n"
"
\n");
}
static struct trackDb *getTrackDb(char *db, char *track)
/* Check if this is an assembly with GTEx track and get trackDb */
{
struct sqlConnection *conn = sqlConnect(db);
if (conn == NULL)
errAbort("Can't connect to database %s\n", db);
char where[256];
safef(where, sizeof(where), "tableName='%s'", track);
// TODO: use hdb, hTrackDbList to get table names of trackDb,
struct trackDb *tdb = trackDbLoadWhere(conn, "trackDb", where);
trackDbAddTableField(tdb);
sqlDisconnect(&conn);
return tdb;
}
static void doMiddle(struct cart *theCart)
/* Send HTML with javascript to display the user interface. */
{
cart = theCart;
char *db = NULL, *genome = NULL, *clade = NULL;
getDbGenomeClade(cart, &db, &genome, &clade, oldVars);
// Start web page with new-style header
webStartGbNoBanner(cart, db, "Genome Browser GTEx Track Settings");
puts(""); // NOTE: This will likely go to web.c
puts("");
char *track = cartUsualString(cart, "g", "gtexGene");
struct trackDb *tdb = getTrackDb(db, track);
if (!tdb)
errAbort("No GTEx track %s found in database %s\n", track, db);
// Container for bootstrap grid layout
puts(
"
\n");
// Print form with configuration HTML, and track description
printf(
"");
printDataInfo(db, tdb);
if (tdb->html)
printTrackDescription(tdb);
puts(
"
");
// Initialize illustration display and handle mouseover and clicks
puts("");
webIncludeFile("inc/gbFooter.html");
webEndJWest();
}
int main(int argc, char *argv[])
/* Process CGI / command line. */
{
/* Null terminated list of CGI Variables we don't want to save to cart */
/* TODO: check these */
char *excludeVars[] = {"submit", "Submit", "g", NULL};
long enteredMainTime = clock1000();
cgiSpoof(&argc, argv);
oldVars = hashNew(10);
cartEmptyShellNoContent(doMiddle, hUserCookie(), excludeVars, oldVars);
cgiExitTime("hgGtexTrackSettings", enteredMainTime);
return 0;
}