c8b3b9017fc5d94a4f3a34d0905d2eff9e0051d2 galt Fri Jul 17 19:50:18 2015 -0700 fixing cartDump so that cartDump calls to update cart for track data from hgTracks and ajax.js do not get limited by bottleneck. diff --git src/hg/cartDump/cartDump.c src/hg/cartDump/cartDump.c index 006979d..f994a19 100644 --- src/hg/cartDump/cartDump.c +++ src/hg/cartDump/cartDump.c @@ -14,66 +14,69 @@ #define CART_DUMP_REMOVE_VAR "n/a" struct hash *oldVars = NULL; void doMiddle(struct cart *cart) /* cartDump - Dump contents of cart. */ { #define MATCH_VAR "match" char *vName = "cartDump.varName"; char *vVal = "cartDump.newValue"; char *wildcard; boolean asTable = cartVarExists(cart,CART_DUMP_AS_TABLE); -// To discourage hacking, call bottleneck -hgBotDelay(); - if (cgiVarExists("submit")) { char *varName = cgiOptionalString(vName); char *newValue = cgiOptionalString(vVal); if (isNotEmpty(varName) && isNotEmpty(newValue)) { varName = skipLeadingSpaces(varName); eraseTrailingSpaces(varName); if (sameString(newValue, CART_DUMP_REMOVE_VAR) || sameString(newValue, CART_VAR_EMPTY)) cartRemove(cart, varName); else cartSetString(cart, varName, newValue); } cartRemove(cart, vVal); cartRemove(cart, "submit"); } if (cgiVarExists("noDisplay")) { + // update cart vars for a track, called by hgTracks.js and ajax.js + // not useful to hackers, so there is no need to call bottleneck. char *trackName = cgiOptionalString("g"); if (trackName != NULL && hashNumEntries(oldVars) > 0) { char *db = cartString(cart, "db"); struct trackDb *tdb = hTrackDbForTrack(db, trackName); if (tdb != NULL && tdbIsComposite(tdb)) { struct lm *lm = lmInit(0); cartTdbTreeCleanupOverrides(tdb,cart,oldVars,lm); lmCleanup(&lm); } } return; } + +// To discourage hacking, call bottleneck +hgBotDelay(); + if (asTable) { jsIncludeFile("utils.js",NULL); jsIncludeFile("ajax.js",NULL); printf("Show as plain text.
",CART_DUMP_AS_TABLE); printf("
\n"); cartSaveSession(cart); printf("Variables can be altered by changing the values and then leaving the field (onchange event will use ajax).\n"); printf("Enter %s or %s to remove a variable.", COLOR_DARKBLUE,CART_DUMP_REMOVE_VAR,COLOR_DARKBLUE,CART_VAR_EMPTY); printf("
Add a variable named: "); cgiMakeTextVar(vName, "", 12); printf(" value: "); cgiMakeTextVar(vVal, "", 24); printf(" ");