fa7b9d78401196e9f81930dc30fcb9563eee34ff larrym Wed Jan 18 16:21:18 2012 -0800 fix problem which turned off canPack for hgUserPsl and oligoMatch (trackDb->canPack is now used instead of track->canPack) - see redmine #6632; also modified ajaxWarnHandler to use jsonForClient (fixes problem with warnings vs. errors) diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c index b62bc3c..7fa13e7 100644 --- src/hg/hgTracks/hgTracks.c +++ src/hg/hgTracks/hgTracks.c @@ -942,30 +942,31 @@ tg->defaultPriority = tg->priority; tg->groupName = "map"; tg->defaultGroupName = cloneString(tg->groupName); tg->exonArrows = TRUE; /* better to create the tdb first, then use trackFromTrackDb */ AllocVar(tdb); tdb->track = cloneString(tg->track); tdb->table = cloneString(tg->table); tdb->visibility = tg->visibility; tdb->shortLabel = cloneString(tg->shortLabel); tdb->longLabel = cloneString(tg->longLabel); tdb->grp = cloneString(tg->groupName); tdb->priority = tg->priority; tdb->type = cloneString("psl"); +tdb->canPack = tg->canPack; trackDbPolish(tdb); addUserSeqBaseAndIndelSettings(tdb); tg->tdb = tdb; return tg; } char *oligoMatchSeq() /* Return sequence for oligo matching. */ { char *s = cartOptionalString(cart, oligoMatchVar); if (s != NULL) { int len; tolowers(s); dnaFilter(s, s); @@ -1102,30 +1103,31 @@ tg->itemName = oligoMatchName; tg->mapItemName = oligoMatchName; tg->priority = 99; tg->defaultPriority = tg->priority; tg->groupName = "map"; tg->defaultGroupName = cloneString(tg->groupName); AllocVar(tdb); tdb->track = cloneString(tg->track); tdb->table = cloneString(tg->table); tdb->visibility = tg->visibility; tdb->shortLabel = cloneString(tg->shortLabel); tdb->longLabel = cloneString(tg->longLabel); tdb->grp = cloneString(tg->groupName); tdb->priority = tg->priority; +tdb->canPack = tg->canPack; trackDbPolish(tdb); tg->tdb = tdb; return tg; } static int doLeftLabels(struct track *track, struct hvGfx *hvg, MgFont *font, int y) /* Draw left labels. Return y coord. */ { struct slList *prev = NULL; /* for sample tracks */ double minRangeCutoff, maxRangeCutoff; double minRange, maxRange; double min0, max0; @@ -5922,33 +5924,31 @@ cartCheckout(&oldCart); cgiVarExcludeExcept(except); } static void addDataHubs(struct cart *cart) { hubCheckForNew(database, cart); cartSetString(cart, hgHubConnectRemakeTrackHub, "on"); } void ajaxWarnHandler(char *format, va_list args) { // When we are generating a response for ajax client and hit an error, put any warnings into hgTracks.err in the response. char buf[4096]; vsnprintf(buf, sizeof(buf), format, args); -// We don't use jsonForClient for fear that it might now be corrupted. -printf("\n", - javaScriptLiteralEncode(buf)); +jsonHashAddString(jsonForClient, "err", buf); } void doMiddle(struct cart *theCart) /* Print the body of an html file. */ { char *debugTmp = NULL; /* Uncomment this to see parameters for debugging. */ /* struct dyString *state = NULL; */ /* Initialize layout and database. */ cart = theCart; measureTiming = hPrintStatus() && isNotEmpty(cartOptionalString(cart, "measureTiming")); if (measureTiming) measureTime("Get cart of %d for user:%u session:%u", theCart->hash->elCount, theCart->userId, theCart->sessionId);