9227292b25ce2fc4a36ee898691a49ab53105fab max Fri Apr 3 06:35:21 2015 -0700 2nd version of external tools menu support diff --git src/hg/hgTracks/mainMain.c src/hg/hgTracks/mainMain.c index fb6c1b8..d5af427 100644 --- src/hg/hgTracks/mainMain.c +++ src/hg/hgTracks/mainMain.c @@ -32,26 +32,47 @@ measureTime(NULL); setUdcCacheDir(); browserName = hBrowserName(); organization = "UCSC"; /* Push very early error handling - this is just * for the benefit of the cgiVarExists, which * somehow can't be moved effectively into doMiddle. */ htmlPushEarlyHandlers(); cgiSpoof(&argc, argv); char * link = webTimeStampedLinkToResourceOnFirstCall("HGStyle.css",TRUE); // resource file link if (link) // wrapped in html htmlSetStyle(link); oldVars = hashNew(10); + +if (cgiVarExists("hgt.redirectTool")) + { + printf("Content-type: text/html\n\n"); + + cart = cartForSession(hUserCookie(), NULL, NULL); + printf("<html><body>\n"); + printf("<form id=\"redirForm\" method=\"POST\" action=\"http://tefor.net/crisporMax/crispor.cgi\">\n"); + printf("<input type=\"hidden\" name=\"pos\" value=\"%s\">", cartString(cart, "position")); + printf("<input type=\"hidden\" name=\"org\" value=\"%s\">", cartString(cart, "db")); + printf("<input type=\"hidden\" name=\"pam\" value=\"NGG\">\n"); + // a hidden submit button, see + // http://stackoverflow.com/questions/477691/submitting-a-form-by-pressing-enter-without-a-submit-button + printf("<input type=\"submit\" style=\"position: absolute; left: -9999px; width: 1px; height: 1px;\">\n"); + printf("</form>\n"); + // a little javascript that clicks the submit button + printf("<script>document.getElementById(\"redirForm\").submit();</script>\n"); + printf("</body></html>\n"); + } +else cartHtmlShell("UCSC Genome Browser v"CGI_VERSION, doMiddle, hUserCookie(), excludeVars, oldVars); + if (measureTiming) measureTime("Time to write and close cart"); if (measureTiming) { fprintf(stdout, "<span class='timing'>Overall total time: %ld millis<br /></span>\n", clock1000() - enteredMainTime); } cgiExitTime("hgTracks", enteredMainTime); return 0; }