9a71b6794ec910cbb1864bcba0a910d3995fadc3 tdreszer Tue Oct 25 17:38:23 2011 -0700 Long overdue checkboxes added to superTrack config page. diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c index dd460f3..547c293 100644 --- src/hg/hgTrackUi/hgTrackUi.c +++ src/hg/hgTrackUi/hgTrackUi.c @@ -2370,59 +2370,102 @@ #ifdef UNUSED static boolean isInTrackList(struct trackDb *tdbList, struct trackDb *target) /* Return TRUE if target is in tdbList. */ { struct trackDb *tdb; for (tdb = tdbList; tdb != NULL; tdb = tdb->next) if (tdb == target) return TRUE; return FALSE; } #endif /* UNUSED */ void superTrackUi(struct trackDb *superTdb, struct trackDb *tdbList) /* List tracks in this collection, with visibility controls and UI links */ { -printf("<P><TABLE CELLPADDING=2>"); +#define SUPERS_WITH_CHECKBOXES +#ifdef SUPERS_WITH_CHECKBOXES +#define PM_BUTTON_GLOBAL "<IMG height=18 width=18 onclick=\"superT.plusMinus(%s);\" id='btn_%s' src='../images/%s'>" +#define BUTTON_PLUS_ALL_GLOBAL() printf(PM_BUTTON_GLOBAL,"true", "plus_all", "add_sm.gif") +#define BUTTON_MINUS_ALL_GLOBAL() printf(PM_BUTTON_GLOBAL,"false","minus_all","remove_sm.gif") +jsIncludeFile("hui.js",NULL); +#endif///def SUPERS_WITH_CHECKBOXES +printf("\n<P><TABLE CELLPADDING=2>"); tdbRefSortPrioritiesFromCart(cart, &superTdb->children); struct slRef *childRef; for (childRef = superTdb->children; childRef != NULL; childRef = childRef->next) { struct trackDb *tdb = childRef->val; + enum trackVisibility tv = tvHide; + #ifdef SUPERS_WITH_CHECKBOXES + if (childRef == superTdb->children) // first time through + { + printf("\n<TR><TD NOWRAP colspan=2>"); + BUTTON_PLUS_ALL_GLOBAL(); + BUTTON_MINUS_ALL_GLOBAL(); + printf(" <B>All</B><BR>"); + printf("</TD></TR>\n"); + } + printf("<TR><TD NOWRAP>"); + if (!tdbIsDownloadsOnly(tdb)) + { + tv = hTvFromString(cartUsualString(cart, tdb->track,hStringFromTv(tdb->visibility))); + // Don't use cheapCgi code... no name and no boolshad... just js + printf("<INPUT TYPE=CHECKBOX id='%s' onchange='superT.childChecked(this);'%s>",tdb->track,(tv != tvHide?" CHECKED":"")); + hTvDropDownClassVisOnlyAndExtra(tdb->track, tv, tdb->canPack, + (tv == tvHide ? "hiddenText":"normalText"), + trackDbSetting(tdb, "onlyVisibility"), + "onchange='superT.selChanged(this);'"); + printf("</TD>\n<TD>"); + printf("<A HREF='%s?%s=%u&c=%s&g=%s' onclick='return superT.submitAndLink(this);'>%s</A> ", + (tdbIsDownloadsOnly(tdb)? hgFileUiName(): hgTrackUiName()), + cartSessionVarName(), cartSessionId(cart), + chromosome, cgiEncode(tdb->track), tdb->shortLabel); + } + else + { + printf("<A HREF='%s?%s=%u&g=%s'>Downloads</A>", + hgFileUiName(),cartSessionVarName(), cartSessionId(cart), cgiEncode(tdb->track)); + printf("</TD>\n<TD>"); + printf("%s ",tdb->shortLabel); + } + printf("</TD>\n"); + #else///ifndef SUPERS_WITH_CHECKBOXES printf("<TR><TD NOWRAP>"); if (tdbIsDownloadsOnly(tdb)) printf("%s ",tdb->shortLabel); else printf("<A HREF='%s?%s=%u&c=%s&g=%s'>%s</A> ", (tdbIsDownloadsOnly(tdb)? hgFileUiName(): hgTrackUiName()), cartSessionVarName(), cartSessionId(cart), chromosome, cgiEncode(tdb->track), tdb->shortLabel); printf("</TD><TD>"); if (tdbIsDownloadsOnly(tdb)) { printf("<A HREF='%s?%s=%u&g=%s'>Downloads</A>", hgFileUiName(),cartSessionVarName(), cartSessionId(cart), cgiEncode(tdb->track)); } else { enum trackVisibility tv = hTvFromString(cartUsualString(cart, tdb->track, hStringFromTv(tdb->visibility))); hTvDropDownClassVisOnly(tdb->track, tv, tdb->canPack, tv == tvHide ? "hiddenText" : "normalText", trackDbSetting(tdb, "onlyVisibility")); } + #endif///ndef SUPERS_WITH_CHECKBOXES printf("<TD>%s", tdb->longLabel); char *dataVersion = trackDbSetting(tdb, "dataVersion"); if (dataVersion) printf("  <EM style='color:#666666; font-size:smaller;'>%s</EM>", dataVersion); printf("</TD></TR>"); } printf("</TABLE>"); } void previewLinks(char *db, struct trackDb *tdb) /* Informational messages about preview browser (ENCODE tracks only) */ { if (trackDbSetting(tdb, "wgEncode") != NULL) { if (hIsPreviewHost())