72d76bf74a9926239a7638871766d219206c8453 larrym Thu Mar 15 20:24:48 2012 -0700 support year filter in t2gUi diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c index 3bc97c1..ce2efa6 100644 --- src/hg/hgTrackUi/hgTrackUi.c +++ src/hg/hgTrackUi/hgTrackUi.c @@ -1878,37 +1878,62 @@ 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 t2gUi(struct trackDb *tdb) /* UI for t2g match track */ { char* keywordTag = "t2gKeywords"; +char* yearTag = "t2gYear"; char *keywords = cartUsualString(cart, keywordTag, ""); +char *text[NUM_YEARS + 1]; +char *values[NUM_YEARS + 1]; +char *yearFilter = cartUsualString(cart, yearTag, "anytime"); +int i; puts("<P><B>Filter articles by keywords in abstract, title or authors:</B>"); cgiMakeTextVar(keywordTag, keywords, 45); +text[0] = "anytime"; +values[0] = "anytime"; +time_t nowTime = time(NULL); +struct tm *tm = localtime(&nowTime); +int nowYear = 1900 + tm->tm_year; + +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); + } + +puts("</P><P>\n"); +cgiDropDownWithTextValsAndExtra(yearTag, 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 */ { char *enz = cartUsualString(cart, cutterVar, cutterDefault);