bdd82165484a4faf7397933a9db170ede3b3ed0c braney Wed Feb 7 14:56:09 2018 -0800 fixing bugs in hgCollection diff --git src/hg/hgCollection/hgCollection.c src/hg/hgCollection/hgCollection.c index 4e5a192..b4c5c38 100644 --- src/hg/hgCollection/hgCollection.c +++ src/hg/hgCollection/hgCollection.c @@ -139,32 +139,32 @@ { struct trackDb *subTdb; jsInlineF(""); } jsInlineF(""); } static void outHubHeader(FILE *f, char *db) // output a track hub header { fprintf(f,"hub hub1\n\ -shortLabel User Composite\n\ -longLabel User Composite\n\ +shortLabel Track Collections\n\ +longLabel Track Collections\n\ useOneFile on\n\ email genome-www@soe.ucsc.edu\n\n"); fprintf(f,"genome %s\n\n", db); } static char *getHubName(struct cart *cart, char *db) // get the name of the hub to use for user collections { struct tempName hubTn; char buffer[4096]; safef(buffer, sizeof buffer, "%s-%s", customCompositeCartName, db); char *hubName = cartOptionalString(cart, buffer); if (hubName == NULL) @@ -391,30 +391,31 @@ " \n"); } static void doMainPage(struct cart *cart, char *db, struct grp *groupList, struct trackDb *trackList) /* Print out initial HTML of control page. */ { webStartGbNoBanner(cart, db, "Collections"); webIncludeResourceFile("gb.css"); webIncludeResourceFile("spectrum.min.css"); webIncludeResourceFile("hgGtexTrackSettings.css"); jsReloadOnBackButton(cart); webIncludeFile("inc/hgCollection.html"); char *assembly = stringBetween("(", ")", hFreezeFromDb(db)); +if (assembly != NULL) jsInlineF("$('#assembly').text('%s');\n",assembly); printHelp(); doTable(cart, db, groupList, trackList); puts(""); puts(""); puts(""); puts(""); puts("\n"); jsIncludeFile("utils.js", NULL); jsIncludeFile("ajax.js", NULL); jsIncludeFile("spectrum.min.js", NULL); jsIncludeFile("hgCollection.js", NULL); webEndGb(); @@ -468,30 +469,32 @@ return dy; } static void outTdb(struct sqlConnection *conn, char *db, FILE *f, char *name, struct trackDb *tdb, char *parent, char *visibility, unsigned int color, struct track *track, struct hash *nameHash, struct hash *collectionNameHash, int numTabs, int priority) // out the trackDb for one track { 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); hashReplace(tdb->settingsHash, "bigDataUrl", dataUrl); } } char *tdbType = trackDbSetting(tdb, "tdbType"); if (tdbType != NULL) hashReplace(tdb->settingsHash, "type", tdbType); hashReplace(tdb->settingsHash, "parent", parent); hashReplace(tdb->settingsHash, "shortLabel", track->shortLabel); hashReplace(tdb->settingsHash, "longLabel", track->longLabel); hashReplace(tdb->settingsHash, "track", makeUnique(collectionNameHash, name)); char priBuf[128]; safef(priBuf, sizeof priBuf, "%d", priority); @@ -579,31 +582,33 @@ } static void updateHub(struct cart *cart, char *db, struct track *collectionList, struct hash *nameHash) // save our state to the track hub { char *filename = getHubName(cart, db); char *hubName = hubNameFromUrl(filename); FILE *f = mustOpen(filename, "w"); chmod(filename, 0666); struct hash *collectionNameHash = newHash(6); outHubHeader(f, db); struct track *collection; -struct sqlConnection *conn = hAllocConn(db); +struct sqlConnection *conn = NULL; +if (!trackHubDatabase(db)) + conn = hAllocConn(db); int priority = 1; for(collection = collectionList; collection; collection = collection->next) { if (collection->trackList == NULL) // don't output composites without children continue; outComposite(f, collection, priority++); struct trackDb *tdb; struct track *track; for (track = collection->trackList; track; track = track->next) { if (track->viewFunc != NULL) { priority = outView(f, conn, db, track, collection->name, nameHash, collectionNameHash, priority, hubName); } else