45ae4560eae022132877e2349a5d0420de09872c max Mon Mar 26 14:52:07 2012 -0700 make subtrack config work following tims suggestions, try to make psl track description clearer diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c index 68a64ab..ba7c435 100644 --- src/hg/hgTrackUi/hgTrackUi.c +++ src/hg/hgTrackUi/hgTrackUi.c @@ -1878,63 +1878,72 @@ puts(" (Comma separated list, i.e.: GT,AG for splice sites)"); puts("<P>"); cgiMakeCheckBox(MOTIF_COMPLEMENT, complementsToo); puts(" <B>Show reverse complements of motifs also</B>"); puts("<P>Options for slides and presentations:"); puts("<P><B>Title: </B>"); cgiMakeTextVar(titleVar, title, 30); puts("<P><B>Display: </B>"); cgiMakeCheckBox(BASE_SHOWASM, showAsm); puts(" <B>assembly </B>"); cgiMakeCheckBox(BASE_SHOWPOS, showPos); puts(" <B>position</B>"); } -#define NUM_YEARS 30 // similar to google scholar, which goes back to 20 years - void pubsUi(struct trackDb *tdb) /* UI for pubs match track */ { -char* keywordTag = "pubsBlat.pubsKeywords"; -char* yearTag = "pubsBlat.pubsYear"; -char *keywords = cartUsualString(cart, keywordTag, ""); -char *text[NUM_YEARS + 1]; -char *values[NUM_YEARS + 1]; -char *yearFilter = cartUsualString(cart, yearTag, "anytime"); -int i; +#define NUM_YEARS 30 // similar to google scholar, which goes back to 20 years + +#define PUBS_KEYWORDS_TAG "pubsKeywords" +#define PUBS_YEAR_TAG "pubsYear" + +// get current set filters from cart +char *keywords = cartUsualStringClosestToHome(cart, tdb, FALSE, PUBS_KEYWORDS_TAG, ""); +char *yearFilter = cartUsualStringClosestToHome(cart, tdb, FALSE, PUBS_YEAR_TAG, "anytime"); + +// print keyword input box puts("<P><B>Filter articles by keywords in abstract, title or authors:</B>"); -cgiMakeTextVar(keywordTag, keywords, 45); +char cgiVar[128]; +safef(cgiVar,sizeof(cgiVar),"%s.%s",tdb->track,PUBS_KEYWORDS_TAG); +cgiMakeTextVar(cgiVar, keywords, 45); +// generate strings like "since <year>" for last 30 years +char *text[NUM_YEARS + 1]; +char *values[NUM_YEARS + 1]; text[0] = "anytime"; values[0] = "anytime"; time_t nowTime = time(NULL); struct tm *tm = localtime(&nowTime); int nowYear = 1900 + tm->tm_year; +int i; for(i = 0; i < NUM_YEARS; i++) { char buf[20]; safef(buf, sizeof(buf), "since %d", nowYear - i); text[i + 1] = cloneString(buf); safef(buf, sizeof(buf), "%d", nowYear - i); values[i + 1] = cloneString(buf); } +// print dropdown box with "since <year>" lines puts("</P><P>\n"); printf("<B>Show articles published </B>"); -cgiDropDownWithTextValsAndExtra(yearTag, text, values, NUM_YEARS + 1, yearFilter, NULL); +safef(cgiVar,sizeof(cgiVar),"%s.%s",tdb->track,PUBS_YEAR_TAG); +cgiDropDownWithTextValsAndExtra(cgiVar, text, values, NUM_YEARS + 1, yearFilter, NULL); puts("</P>\n"); } void oligoMatchUi(struct trackDb *tdb) /* UI for oligo match track */ { char *oligo = cartUsualString(cart, oligoMatchVar, oligoMatchDefault); puts("<P><B>Short (2-30 base) sequence:</B>"); cgiMakeTextVar(oligoMatchVar, oligo, 45); } void cutterUi(struct trackDb *tdb) /* UI for restriction enzyme track */ {