9d881a6935aca9a2952f9dc4726f74938a61b1b5 kate Sat Mar 13 21:00:53 2021 -0800 Add database-specific hg.conf setting to put up a link on position line (for wuhCor1 quick start guide). refs #27198 diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c index fe51c0c..efdb52f 100644 --- src/hg/hgTracks/hgTracks.c +++ src/hg/hgTracks/hgTracks.c @@ -8639,32 +8639,30 @@ hPrintf("\n%s", trackGroupsHidden1->string); hPrintf("\n"); hPrintf("
\n\n", hgTracksName()); hPrintf("%s", trackGroupsHidden2->string); freeDyString(&trackGroupsHidden1); freeDyString(&trackGroupsHidden2); if (!psOutput) cartSaveSession(cart); /* Put up hgsid= as hidden variable. */ hPrintf("
"); } /* Make line that says position. */ { char buf[256]; - char *survey = cfgOptionEnv("HGDB_SURVEY", "survey"); - char *surveyLabel = cfgOptionEnv("HGDB_SURVEY_LABEL", "surveyLabel"); char *javascript = "document.location = '/cgi-bin/hgTracks?db=' + document.TrackForm.db.options[document.TrackForm.db.selectedIndex].value;"; if (containsStringNoCase(database, "zoo")) { hPuts("Organism "); printAssemblyListHtmlExtra(database, "change", javascript); } // multi-region button on position line, initially under hg.conf control if (multiRegionButtonTop) { printMultiRegionButton(); hPrintf(" "); } if (virtualSingleChrom()) // DISGUISE VMODE @@ -8687,30 +8685,54 @@ pressedClass, showVirtRegions, addCommasToPos(database, position)); hPrintf("\n", buf); sprintLongWithCommas(buf, virtWinEnd - virtWinStart); hPrintf(" %s bp. ", buf); hPrintf("\n", multiRegionButtonTop ? 50 : 60); hWrites(" "); hButton("goButton", "go"); if (!trackHubDatabase(database)) { jsonObjectAdd(jsonForClient, "assemblySupportsGeneSuggest", newJsonBoolean(assemblySupportsGeneSuggest(database))); if (assemblySupportsGeneSuggest(database)) hPrintf("\n", assemblyGeneSuggestTrack(database)); } + + // hg.conf controlled links + + // database-specific link: 2 hg.conf settings, format _TopLink{Label} + struct slName *dbLinks = cfgNamesWithPrefix(database); + struct slName *link; + char *dbTopLink = NULL, *dbTopLinkLabel = NULL; + for (link = dbLinks; link != NULL; link = link->next) + { + char *name = cloneString(link->name); + char *setting = chopPrefixAt(link->name, '_'); + if (sameString(setting, "TopLink")) + dbTopLink = cfgOption(name); + else if (sameString(setting, "TopLinkLabel")) + dbTopLinkLabel = cfgOption(name); + } + if (dbTopLink && dbTopLinkLabel) + { + hPrintf("  %s\n", + dbTopLink, dbTopLinkLabel); + } + // generic link + char *survey = cfgOptionEnv("HGDB_SURVEY", "survey"); + char *surveyLabel = cfgOptionEnv("HGDB_SURVEY_LABEL", "surveyLabel"); if (survey && differentWord(survey, "off")) hPrintf("  " "%s\n", survey, surveyLabel ? surveyLabel : "Take survey"); hPutc('\n'); } } // TODO GALT how to handle ideos? boolean nukeIdeoFromList = FALSE; for(window=windows;window;window=window->next) { setGlobalsFromWindow(window); if (window == windows) // first window