baca98f3366561495cb20ac6ecb41c8794daf34d hiram Fri Sep 18 14:27:22 2020 -0700 fix last row of table to correctly have three columns when required refs #24396 diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c index 29e2707..62ca1c4 100644 --- src/hg/hgTracks/hgTracks.c +++ src/hg/hgTracks/hgTracks.c @@ -10203,50 +10203,81 @@ cgiTableRowEnd(); cgiSimpleTableRowStart(); cgiSimpleTableFieldStart(); printLongWithCommas(stdout, scafCount); cgiTableFieldEnd(); cgiSimpleTableFieldStart(); printLongWithCommas(stdout, totalSize); cgiTableFieldEnd(); } cgiTableRowEnd(); } sqlFreeResult(&sr); hFreeConn(&conn); } -static void chromSizesDownloadRow() +static void chromSizesDownloadRow(boolean hasAlias, char *hubAliasFile) /* Show link to chrom.sizes file at end of chromInfo table (unless this is a hub) */ { if (! trackHubDatabase(database)) { cgiSimpleTableRowStart(); cgiSimpleTableFieldStart(); puts("Download as file"); cgiTableFieldEnd(); cgiSimpleTableFieldStart(); printf("%s.chrom.sizes", hDownloadsServer(), database, database, database); cgiTableFieldEnd(); + if (hasAlias) + { + cgiSimpleTableFieldStart(); + puts(" "); + cgiTableFieldEnd(); + } + cgiTableRowEnd(); + } +else if (hubAliasFile) + { + cgiSimpleTableRowStart(); + cgiSimpleTableFieldStart(); + puts("Download as file"); + cgiTableFieldEnd(); + cgiSimpleTableFieldStart(); + puts(" "); + cgiTableFieldEnd(); + cgiSimpleTableFieldStart(); + printf("assembly hub alias file", hubAliasFile); + cgiTableFieldEnd(); cgiTableRowEnd(); } } void chromInfoPage() /* Show list of chromosomes (or scaffolds, etc) on which this db is based. */ { +boolean hasAlias = FALSE; +char *aliasFile = NULL; +if (trackHubDatabase(database)) + { + aliasFile = trackHubAliasFile(database); + if (aliasFile) + hasAlias = TRUE; + } +else + hasAlias = hTableExists(database, "chromAlias"); + char *position = cartUsualString(cart, "position", hDefaultPos(database)); char *defaultChrom = hDefaultChrom(database); char *freeze = hFreezeFromDb(database); struct dyString *title = dyStringNew(512); if (freeze == NULL) dyStringPrintf(title, "%s Browser Sequences", hOrganism(database)); else if (stringIn(database, freeze)) dyStringPrintf(title, "%s %s Browser Sequences", hOrganism(database), freeze); else dyStringPrintf(title, "%s %s (%s) Browser Sequences", trackHubSkipHubName(hOrganism(database)), freeze, trackHubSkipHubName(database)); webStartWrapperDetailedNoArgs(cart, database, "", title->string, FALSE, FALSE, FALSE, FALSE); printf("
"); dyStringFree(&title); webEndSectionTables(); -} - +} /* void chromInfoPage() */ void resetVars() /* Reset vars except for position and database. */ { static char *except[] = {"db", "position", NULL}; char *cookieName = hUserCookie(); char *sessionId = cgiOptionalString(cartSessionVarName()); char *userId = findCookieData(cookieName); struct cart *oldCart = cartNew(userId, sessionId, NULL, NULL); cartRemoveExcept(oldCart, except); cartCheckout(&oldCart); cgiVarExcludeExcept(except); } void setupHotkeys(boolean gotExtTools)