c1322ce22bfb59b5f98bf6b2aeb72c08fa4632ff max Tue Sep 3 16:52:30 2024 -0700 no feedback from QA for a long time, so committing curl button now but putting under hg.conf control, refs #33415 diff --git src/hg/hgTables/hgTables.c src/hg/hgTables/hgTables.c index b22fa39..a8b2535 100644 --- src/hg/hgTables/hgTables.c +++ src/hg/hgTables/hgTables.c @@ -1430,81 +1430,99 @@ { sep=""; for (c=0;ccurl"); + for (struct cgiVar *vars = cgiVarList(); vars!=NULL; vars=vars->next) + { + if ((sameOk(vars->name, "hgsid")) || (sameOk(vars->name, hgtaDoCurl) || sameOk(vars->name, hgtaDoCurlSelected))) + continue; + else + printf(" --data '%s=%s'", vars->name, vars->val); + } + printf(" --data '%s=submit' %shgTables

", addVar, hLocalHostCgiBinUrl()); + htmlClose(); +} + void doTopSubmit(struct sqlConnection *conn) /* Respond to submit button on top level page. * This basically just dispatches based on output type. */ { char *output = cartString(cart, hgtaOutputType); char *trackName = NULL; char *table = cartString(cart, hgtaTable); struct trackDb *track = NULL; if (!sameString(curGroup->name, "allTables")) { trackName = undupedTrackName(cart, hgtaTrack); track = mustFindTrack(trackName, fullTrackList); } else { struct trackDb *cTdb = NULL; track = hTrackDbForTrack(database, table); cTdb = hCompositeTrackDbForSubtrack(database, track); if (cTdb) track = cTdb; } checkNoGenomeDisabled(database, table); + + if (track != NULL) { if (sameString(track->table, "gvPos") && !cartVarExists(cart, "gvDisclaimer")) { /* display disclaimer and add flag to cart, program exits from here */ htmlStart("Table Browser"); gvDisclaimer(); } else if (sameString(track->table, "gvPos") && sameString(cartString(cart, "gvDisclaimer"), "Disagree")) { cartRemove(cart, "gvDisclaimer"); cartRemove(cart, hgtaDoTopSubmit); cartSetString(cart, hgtaDoMainPage, "return to table browser"); dispatch(); return; } } if (doGenomeSpace()) { if (!checkGsReady()) return; } if (doGreat()) verifyGreatFormat(output); if (doGalaxy()) verifyGalaxyFormat(output); + if (sameString(output, outPrimaryTable)) { if (doGalaxy() && !cgiOptionalString(hgtaDoGalaxyQuery)) sendParamsToGalaxy(hgtaDoTopSubmit, "get output"); else doOutPrimaryTable(table, conn); } else if (sameString(output, outSelectedFields)) doOutSelectedFields(table, conn); else if (sameString(output, outSequence)) doOutSequence(conn); else if (sameString(output, outMicroarrayNames)) doOutMicroarrayNames(track); else if (sameString(output, outBed)) doOutBed(table, conn); @@ -1565,30 +1583,41 @@ } void dispatch() /* Scan for 'do' variables and dispatch to appropriate page-generator. * By default head to the main page. */ { struct hashEl *varList; struct sqlConnection *conn = NULL; if (!trackHubDatabase(database)) conn = curTrack ? hAllocConnTrack(database, curTrack) : hAllocConn(database); pushWarnHandler(earlyAbortHandler); if (cartVarExists(cart, hgtaDoTest)) doTest(); else if (cartVarExists(cart, hgtaDoMainPage)) doMainPage(conn); +else if (cartVarExists(cart, hgtaDoCurl)) + { + if (sameOk(cartOptionalString(cart, hgtaOutputType), outSelectedFields)) + doTopSubmit(conn); + else + doTopCurl(conn, hgtaDoTopSubmit); + } +else if (cartVarExists(cart, hgtaDoCurlSelected)) + doTopCurl(conn, hgtaDoPrintSelectedFields); +else if (cartVarExists(cart, hgtaDoCurlGenePredSequence)) + doTopCurl(conn, hgtaDoGenePredSequence); else if (cartVarExists(cart, hgtaDoSchema)) doSchema(conn); else if (cartVarExists(cart, hgtaDoTopSubmit)) doTopSubmit(conn); else if (cartVarExists(cart, hgtaDoSummaryStats)) doSummaryStats(conn); else if (cartVarExists(cart, hgtaDoIntersectPage)) doIntersectPage(conn); else if (cartVarExists(cart, hgtaDoPalOut)) doGenePredPal(conn); else if (cartVarExists(cart, hgtaDoPal)) doOutPalOptions( conn); else if (cartVarExists(cart, hgtaDoClearIntersect)) doClearIntersect(conn); else if (cartVarExists(cart, hgtaDoIntersectMore))