1f1b38c1c05c0e0011260a38a9eb926cd6038afd max Tue Mar 12 14:00:43 2013 -0700 new pubsBlat format allows to specify mouseover text and labels as part of primary table, without join. Also allows to define classes of papers and color them via a second table diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c index 139ce9b..1508575 100644 --- src/hg/hgTrackUi/hgTrackUi.c +++ src/hg/hgTrackUi/hgTrackUi.c @@ -1985,38 +1985,40 @@ 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>"); } void pubsUi(struct trackDb *tdb) /* UI for pubs match track */ { -#define NUM_YEARS 30 // similar to google scholar, which goes back to 20 years +#define NUM_YEARS 15 // similar to google scholar, which goes back to 20 years #define PUBS_KEYWORDS_TAG "pubsKeywords" #define PUBS_YEAR_TAG "pubsYear" +#define PUBS_COLORBY_TAG "pubsColorBy" // 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"); +char *colorBy = cartUsualStringClosestToHome(cart, tdb, FALSE, PUBS_COLORBY_TAG, "topic"); // print keyword input box puts("<P><B>Filter articles by keywords in abstract, title or authors:</B>"); 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; @@ -2024,30 +2026,38 @@ 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>"); safef(cgiVar,sizeof(cgiVar),"%s.%s",tdb->track,PUBS_YEAR_TAG); cgiDropDownWithTextValsAndExtra(cgiVar, text, values, NUM_YEARS + 1, yearFilter, NULL); + +// print dropdown box with "since <year>" lines +puts("</P><P>\n"); +printf("<B>Color sequence matches by </B>"); +char *colorText[3] = {"topic", "impact of journal", "year"}; +char *colorVals[3] = {"topic", "impact", "year"}; +safef(cgiVar,sizeof(cgiVar),"%s.%s",tdb->track,PUBS_COLORBY_TAG); +cgiDropDownWithTextValsAndExtra(cgiVar, colorText, colorVals, 3, colorBy, 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 */ {