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(" Show reverse complements of motifs also"); puts("

Options for slides and presentations:"); puts("

Title: "); cgiMakeTextVar(titleVar, title, 30); puts("

Display: "); cgiMakeCheckBox(BASE_SHOWASM, showAsm); puts(" assembly "); cgiMakeCheckBox(BASE_SHOWPOS, showPos); puts(" position"); } 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("

Filter articles by keywords in abstract, title or authors:"); char cgiVar[128]; safef(cgiVar,sizeof(cgiVar),"%s.%s",tdb->track,PUBS_KEYWORDS_TAG); cgiMakeTextVar(cgiVar, keywords, 45); // generate strings like "since " 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 " lines puts("

\n"); printf("Show articles published "); 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 " lines +puts("

\n"); +printf("Color sequence matches by "); +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("

\n"); } void oligoMatchUi(struct trackDb *tdb) /* UI for oligo match track */ { char *oligo = cartUsualString(cart, oligoMatchVar, oligoMatchDefault); puts("

Short (2-30 base) sequence:"); cgiMakeTextVar(oligoMatchVar, oligo, 45); } void cutterUi(struct trackDb *tdb) /* UI for restriction enzyme track */ {