b29c9d8f7b4cf785d6c2d5b366a84568c88fa380
angie
  Tue Aug 23 09:08:54 2011 -0700
Removing position variable from hgTracks' hotlinks where possible.Now that the image and position input are updated by javascript,
the position info in the static hotlinks HTML gets stale. We can
just use the cart position for internal links (hgTables, hgConvert)
but the stale HTML is still an issue for hotlinks that have separate
variables for chrom, start and end: DNA, Ensembl, NCBI.

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index 75f1679..6afb7a4 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -2635,33 +2635,31 @@
 	char *fixupName = replaceChars(chrName, "chr0", "chr");
 	name = fixupName;
 	}
     }
 else if (sameWord(scientificName, "Saccharomyces cerevisiae"))
     {
     if (stringIn("2micron", chrName))
 	{
 	char *fixupName = replaceChars(chrName, "2micron", "2-micron");
 	name = fixupName;
 	}
     }
 
 if (sameWord(chrName, "chrM"))
     name = "chrMt";
-localStart = start;
-localEnd = end + 1; // Ensembl base-1 display coordinates
-ensUrl = ensContigViewUrl(database, dir, name, seqBaseCount, localStart, localEnd, archive);
+ensUrl = ensContigViewUrl(database, dir, name, seqBaseCount, start+1, end, archive);
 hPrintf("<A HREF=\"%s\" TARGET=_blank class=\"topbar\">", ensUrl->string);
 /* NOTE: you can not freeMem(dir) because sometimes it is a literal
  * constant */
 freeMem(scientificName);
 dyStringFree(&ensUrl);
 }
 
 void makeHgGenomeTrackVisible(struct track *track)
 /* This turns on a track clicked from hgGenome, even if it was previously */
 /* hidden manually and there are cart vars to support that. */
 {
 struct hashEl *hels;
 struct hashEl *hel;
 char prefix[SMALLBUF];
 /* First check if the click was from hgGenome.  If not, leave. */
@@ -3552,63 +3550,61 @@
        database,
        cartSessionVarName(),
        cartSessionId(cart),
        "Table View");
     }
 else if (hIsGsidServer())
     {
     hPrintf("<TD ALIGN=CENTER nowrap>&nbsp;&nbsp;<A HREF=\"../cgi-bin/gsidTable?db=%s\" class=\"topbar\">%s</A>&nbsp;&nbsp;</TD>",
        database, "Table View");
     }
 else
     {
     /* disable TB for CGB servers */
     if (!hIsCgbServer())
 	{
-	    hPrintf("<TD ALIGN=CENTER>&nbsp;&nbsp;<A HREF=\"../cgi-bin/hgTables?db=%s&position=%s:%d-%d&%s=%u\" class=\"topbar\">%s</A>&nbsp;&nbsp;</TD>",
-	    database, chromName, winStart+1, winEnd,
-	cartSessionVarName(),
-	    cartSessionId(cart),
+	    hPrintf("<TD ALIGN=CENTER>&nbsp;&nbsp;<A HREF=\"../cgi-bin/hgTables?db=%s&%s=%u\" "
+		    "class=\"topbar\">%s</A>&nbsp;&nbsp;</TD>",
+		    database, cartSessionVarName(), cartSessionId(cart),
 	"Tables");
 	}
     }
 
 if (hgNearOk(database))
     {
     hPrintf("<TD ALIGN=CENTER nowrap>&nbsp;&nbsp;<A HREF=\"../cgi-bin/hgNear?%s\" class=\"topbar\">%s</A>&nbsp;&nbsp;</TD>",
                  uiVars->string, "Gene Sorter");
     }
 if (hgPcrOk(database))
     {
     hPrintf("<TD ALIGN=CENTER>&nbsp;&nbsp;<A HREF=\"../cgi-bin/hgPcr?%s\" class=\"topbar\">PCR</A>&nbsp;&nbsp;</TD>", uiVars->string);
     }
 if (!psOutput)
     {
     hPrintf("<TD ALIGN=CENTER>&nbsp;&nbsp;<A HREF=\"%s&o=%d&g=getDna&i=mixed&c=%s&l=%d&r=%d&db=%s&%s\" class=\"topbar\">"
         "%s</A>&nbsp;&nbsp;</TD>",  hgcNameAndSettings(),
         winStart, chromName, winStart, winEnd, database, uiVars->string, "DNA");
     }
 
 if (!psOutput)
     {
     /* disable Convert function for CGB servers for the time being */
     if (!hIsCgbServer())
     if (liftOverChainForDb(database) != NULL)
         {
-        hPrintf("<TD ALIGN=CENTER>&nbsp;&nbsp;<A HREF=\"");
-        hPrintf("../cgi-bin/hgConvert?%s&db=%s&position=%s:%d-%d",
-            uiVars->string, database, chromName, winStart+1, winEnd);
+        hPrintf("<TD ALIGN=CENTER>&nbsp;&nbsp;<A HREF=\"../cgi-bin/hgConvert?%s&db=%s",
+		uiVars->string, database);
         hPrintf("\" class=\"topbar\">Convert</A>&nbsp;&nbsp;</TD>");
         }
     }
 
 char ensVersionString[256];
 char ensDateReference[256];
 ensGeneTrackVersion(database, ensVersionString, ensDateReference,
     sizeof(ensVersionString));
 
 if (!psOutput)
     {
     if (differentWord(database,"susScr2"))
         {
         /* Print Ensembl anchor for latest assembly of organisms we have
         * supported by Ensembl == if versionString from trackVersion exists */