ab1496587c1d1f6319181eac3d7739f18bd88010 kate Wed Nov 25 11:46:27 2015 -0800 If not tissues are selected, select all. refs #15645 diff --git src/hg/lib/gtexUi.c src/hg/lib/gtexUi.c index a050fa0..588f91c 100644 --- src/hg/lib/gtexUi.c +++ src/hg/lib/gtexUi.c @@ -66,59 +66,65 @@ static void makeAllTissueCheckboxes(char *name, struct gtexTissue *tissues, struct slName *checked) { 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>"); struct tissueSelect *tsel; struct gtexTissue *tis; struct tissueSelect *allTissues = NULL; for (tis = tissues; tis != NULL; tis = tis->next) { AllocVar(tsel); tsel->name = tis->name; tsel->label = makeTissueLabel(tis); + if (hashNumEntries(checkHash) == 0) + tsel->checked = TRUE; + else 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"); } static void makeGroupedTissueCheckboxes(char *name, struct gtexTissue *tissues, struct slName *checked) { 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>"); struct tissueSelect *brainTissues = NULL; struct tissueSelect *digestiveTissues = NULL; struct tissueSelect *reproductiveTissues = NULL; struct tissueSelect *otherTissues = NULL; struct tissueSelect *tsel; struct gtexTissue *tis; for (tis = tissues; tis != NULL; tis = tis->next) { AllocVar(tsel); tsel->name = tis->name; tsel->label = makeTissueLabel(tis); + if (hashNumEntries(checkHash) == 0) + tsel->checked = TRUE; + else tsel->checked = (hashLookup(checkHash, tis->name) != NULL); if (startsWith("brain", tis->name)) slAddHead(&brainTissues, tsel); else if (sameString(tis->name, "uterus") || sameString(tis->name, "testis") || sameString(tis->name, "vagina") || sameString(tis->name, "prostate") || sameString(tis->name, "ovary") || sameString(tis->name, "breastMamTissue") || sameString(tis->name, "ectocervix") || sameString(tis->name, "endocervix") || sameString(tis->name, "fallopianTube")) slAddHead(&reproductiveTissues, tsel); else if (startsWith("esophagus", tis->name) || startsWith("colon", tis->name) || sameString(tis->name, "stomach") || sameString("smallIntestine", tis->name)) slAddHead(&digestiveTissues, tsel); else slAddHead(&otherTissues, tsel); }