d3811bb3f0bc25705d4629404274a49e1b359957 galt Tue Jan 13 14:57:10 2015 -0800 In hgc, hgGene, and hgTrackUi menu link to hgTables automatically selects the group track and table -- now fixed for containers diff --git src/hg/lib/web.c src/hg/lib/web.c index f8325c3..91bd3d5 100644 --- src/hg/lib/web.c +++ src/hg/lib/web.c @@ -1297,47 +1297,50 @@ dyStringAppend(dy, "?"); dyStringAppend(dy, uiVars); if(match[1].rm_so != match[1].rm_eo) dyStringAppend(dy, "&"); } if(offset < len) dyStringAppend(dy, menuStr + offset); freez(&menuStr); menuStr = dyStringCannibalize(&dy); } if(scriptName) { // Provide hgTables options for some CGIs. char hgTablesOptions[1024] = ""; - char *table = (cart == NULL ? NULL : + char *track = (cart == NULL ? NULL : (endsWith(scriptName, "hgGene") ? cartOptionalString(cart, "hgg_type") : cartOptionalString(cart, "g"))); - if (table && cart && db && + if (track && cart && db && (endsWith(scriptName, "hgc") || endsWith(scriptName, "hgTrackUi") || endsWith(scriptName, "hgGene"))) { - struct trackDb *tdb = hTrackDbForTrack(db, table); - if (tdb != NULL) + struct trackDb *tdb = hTrackDbForTrack(db, track); + if (tdb) + { + struct trackDb *topLevel = trackDbTopLevelSelfOrParent(tdb); safef(hgTablesOptions, sizeof hgTablesOptions, "../cgi-bin/hgTables?hgta_doMainPage=1&hgta_group=%s&hgta_track=%s&hgta_table=%s&", - tdb->grp, tdb->track, tdb->table); + topLevel->grp, topLevel->track, tdb->table); menuStr = replaceChars(menuStr, "../cgi-bin/hgTables?", hgTablesOptions); trackDbFree(&tdb); } } + } if(!loginSystemEnabled()) stripRegEx(menuStr, "<\\!-- LOGIN_START -->.*<\\!-- LOGIN_END -->", REG_ICASE); if(scriptName) { // Provide optional official mirror servers menu items char *geoMenu = geoMirrorMenu(); char *pattern = ""; char *newMenuStr = replaceChars(menuStr, pattern, geoMenu); freez(&menuStr); menuStr = newMenuStr; } if(scriptName)