f01fbeba761e2b110036a9a71c05b373895ced97 braney Mon Feb 26 13:35:01 2018 -0800 make sure collection tree is loaded before removing wait screen. Make hgTracks ajax requests synchronous to remove race condition diff --git src/hg/hgCollection/hgCollection.c src/hg/hgCollection/hgCollection.c index a39a3bd..d659b7b 100644 --- src/hg/hgCollection/hgCollection.c +++ src/hg/hgCollection/hgCollection.c @@ -815,32 +815,36 @@ if (numTabs == 1) tabs = "\t"; else if (numTabs == 2) tabs = "\t\t"; else if (numTabs == 3) tabs = "\t\t\t"; struct hashEl *hel = hashLookup(tdb->settingsHash, "track"); fprintf(f, "%s%s %s\n", tabs,hel->name, trackHubSkipHubName((char *)hel->val)); char *dataUrl = NULL; char *bigDataUrl = trackDbSetting(tdb, "bigDataUrl"); if (bigDataUrl == NULL) { if (startsWith("bigWig", tdb->type)) + { + if (conn == NULL) + errAbort("track hub has bigWig without bigDataUrl"); dataUrl = getSqlBigWig(conn, db, tdb); } + } struct hashCookie cookie = hashFirst(tdb->settingsHash); while ((hel = hashNext(&cookie)) != NULL) { if (sameString("parent", hel->name)) fprintf(f, "%s%s %s\n", tabs,hel->name, trackHubSkipHubName((char *)hel->val)); else if (!(sameString("track", hel->name) || sameString("polished", hel->name) || sameString("group", hel->name))) fprintf(f, "%s%s %s\n", tabs,hel->name, (char *)hel->val); } if (bigDataUrl == NULL) { if (dataUrl != NULL) fprintf(f, "%sbigDataUrl %s\n", tabs,dataUrl); } @@ -878,31 +882,33 @@ char *hubName = hubNameFromUrl(fileName); FILE *f = fopen(fileName, "w"); struct trackDb *newTdb = hashMustFindVal(nameHash, trackHubSkipHubName(trackName)); hashReplace(newTdb->settingsHash, "track", makeUnique(nameHash, trackName)); hashReplace(newTdb->settingsHash, "parent", trackHubSkipHubName(collectionName)); char *tdbType = trackDbSetting(newTdb, "tdbType"); if (tdbType != NULL) { hashReplace(newTdb->settingsHash, "type", tdbType); hashReplace(newTdb->settingsHash, "shortLabel", trackDbSetting(newTdb, "name")); hashReplace(newTdb->settingsHash, "longLabel", trackDbSetting(newTdb, "description")); } outHubHeader(f, db); -struct sqlConnection *conn = hAllocConn(db); +struct sqlConnection *conn = NULL; +if (!trackHubDatabase(db)) + conn = hAllocConn(db); modifyName(newTdb, hubName, NULL); outTrackDbList(db, conn, f, hubName, trackList, collectionName, newTdb, 0); hFreeConn(&conn); fclose(f); } static void doMiddle(struct cart *cart) /* Set up globals and make web page */ { char *db; char *genome; getDbAndGenome(cart, &db, &genome, oldVars); initGenbankTableNames(db); int timeout = cartUsualInt(cart, "udcTimeout", 300);