a7383ac2f7c1ac568f13b0c6e3303bf6b2ab2d50 braney Mon Oct 23 11:10:00 2017 -0700 make sure we squirrel a name of the table when adding tracks to a collection from hgTracks diff --git src/hg/hgCollection/hgCollection.c src/hg/hgCollection/hgCollection.c index 613affc..4bc25e7 100644 --- src/hg/hgCollection/hgCollection.c +++ src/hg/hgCollection/hgCollection.c @@ -478,32 +478,33 @@ aggregate none\n\ longLabel %s\n\ %s on\n\ color %ld,%ld,%ld \n\ type wig \n\ visibility full\n\n", parent, shortLabel, longLabel, CUSTOM_COMPOSITE_SETTING, 0xff& (collection->color >> 16),0xff& (collection->color >> 8),0xff& (collection->color)); } static void modifyName(struct trackDb *tdb, char *hubName, struct hash *collectionNameHash) /* If this is a new track in the collection we want to make sure * it gets a different name than the track in trackDb. * If it's a native track, we want to squirrel away the original track name. */ { -if ((tdb->grp == NULL) || differentString(tdb->grp, hubName)) +if ((tdb->grp == NULL) || (hubName == NULL) || differentString(tdb->grp, hubName)) { + if (collectionNameHash) hashStore(collectionNameHash, tdb->track); char *bigDataUrl = trackDbSetting(tdb, "bigDataUrl"); if (bigDataUrl == NULL) { char *table = trackDbSetting(tdb, "table"); if (table == NULL) hashAdd(tdb->settingsHash, "table", tdb->track); } } } static int outView(FILE *f, struct sqlConnection *conn, char *db, struct track *view, char *parent, struct hash *nameHash, struct hash *collectionNameHash, int priority, char *hubName) // output a view to a trackhub { @@ -811,30 +812,31 @@ } } static void doAddTrack(struct cart *cart, char *db, struct trackDb *trackList, char *trackName, char *collectionName, struct hash *nameHash) /* Add a track to a collection in a hub. */ { char *fileName = getHubName(cart, db); 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)); outHubHeader(f, db); struct sqlConnection *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); if (udcCacheTimeout() < timeout)