e8150b9257bb593758eb48a92c20b374b264b9b8 tdreszer Tue Dec 21 15:50:04 2010 -0800 Fix for redmine 2036 (silent javascript errors because lib code was inappropriately including hu.js for hgTables merge list. Added feature for redmine 2062. Now hgc and hgTrackUi will show pennantIcon with note. diff --git src/hg/lib/hui.c src/hg/lib/hui.c index 8d4a44e..ced5890 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -6772,40 +6772,43 @@ } return TRUE; } void hCompositeUi(char *db, struct cart *cart, struct trackDb *tdb, char *primarySubtrack, char *fakeSubmit, char *formName, struct hash *trackHash) /* UI for composite tracks: subtrack selection. If primarySubtrack is * non-NULL, don't allow it to be cleared and only offer subtracks * that have the same type. If fakeSubmit is non-NULL, add a hidden * var with that name so it looks like it was pressed. */ { bool hasSubgroups = (trackDbSetting(tdb, "subGroup1") != NULL); boolean isMatrix = dimensionsExist(tdb); boolean viewsOnly = FALSE; +if (primarySubtrack == NULL) + { if (!cartVarExists(cart, "ajax")) { if(trackDbSetting(tdb, "dragAndDrop") != NULL) jsIncludeFile("jquery.tablednd.js", NULL); jsIncludeFile("ajax.js",NULL); #ifdef TABLE_SCROLL jsIncludeFile("jquery.fixedtable.js",NULL); #endif//def TABLE_SCROLL } jsIncludeFile("hui.js",NULL); + } #ifdef SUBTRACK_CFG_POPUP printf(""); cgiMakeHiddenVar("db", db); printf("\n",tdb->track); #endif puts("

"); if (trackDbCountDescendantLeaves(tdb) < MANY_SUBTRACKS && !hasSubgroups) { if(primarySubtrack) compositeUiSubtracksMatchingPrimary(db, cart, tdb,primarySubtrack); else compositeUiSubtracks(db, cart, tdb, trackHash); return; } @@ -7055,30 +7058,62 @@ webPrintLabelCell(label); char **row; while ((row = sqlNextRow(sr)) != NULL) { printf("\n"); char *name = row[0]; char *description = row[1]; webPrintLinkCell(name); webPrintLinkCell(description); } sqlFreeResult(&sr); webPrintLinkTableEnd(); } +boolean printPennantIconNote(struct trackDb *tdb) +// Returns TRUE and prints out the "pennantIcon" and note when found. +//This is used by hgTrackUi and hgc before printing out trackDb "html" +{ +char * setting = trackDbSetting(tdb, "pennantIcon"); +if (setting != NULL) + { + setting = cloneString(setting); + char *icon = htmlEncodeText(nextWord(&setting),FALSE); + char *url = nextWord(&setting); + char *hint = htmlEncodeText(stripEnclosingDoubleQuotes(setting),FALSE); + + if (strlen(url) > 0) + { + printf("

",hint,url,icon); + + // Special case for liftOver from hg17 or hg18, but this should probably be generalized. + if (sameString(icon,"18.jpg") && startsWithWord("lifted",hint)) + printf(" Note: these data have been converted via liftOver from the Mar. 2006 (NCBI36/hg18) version of the track."); + else if (sameString(icon,"17.jpg") && startsWithWord("lifted",hint)) + printf(" Note: these data have been converted via liftOver from the May 2004 (NCBI35/hg17) version of the track."); + else if (strlen(hint) > 0) + printf(" Note: %s.",hint); + printf("

\n"); + } + else + printf("\n",icon); + return TRUE; + } +return FALSE; +} + boolean hPrintPennantIcon(struct trackDb *tdb) // Returns TRUE and prints out the "pennantIcon" when found. Example: ENCODE tracks in hgTracks config list. { char *setting = trackDbSetting(tdb, "pennantIcon"); if(setting != NULL) { setting = cloneString(setting); char *icon = htmlEncodeText(nextWord(&setting),FALSE); if (setting) { char *url = nextWord(&setting); if (setting) { char *hint = htmlEncodeText(stripEnclosingDoubleQuotes(setting),FALSE); hPrintf("\n",hint,url,icon);