9e30a2e3bce0cdb1bb4c4a0ddbd3325dfe9703ec braney Wed May 10 18:20:11 2017 -0700 fix bug in handling of composites with views diff --git src/hg/hgComposite/hgComposite.c src/hg/hgComposite/hgComposite.c index 5e34817..8850a60 100644 --- src/hg/hgComposite/hgComposite.c +++ src/hg/hgComposite/hgComposite.c @@ -660,72 +660,70 @@ //selectVariants(); //char *geneTrack = selectGenes(); //if (geneTrack != NULL) { //selectRegulatory(); //selectAnnotations(geneTrack); //selectFilters(); //selectOutput(); //submitAndDisclaimer(); } printf("</FORM>"); jsReloadOnBackButton(cart); webNewSection("Using the Composite Builder"); -webIncludeHelpFileSubst("hgCompositeHelp", cart, FALSE); +webIncludeHelpFileSubst("hgCompositeHelp", NULL, FALSE); jsIncludeFile("jquery-ui.js", NULL); jsIncludeFile("hgVarAnnogrator.js", NULL); jsIncludeFile("ui.dropdownchecklist.js", NULL); jsIncludeFile("ddcl.js", NULL); } void doUi(char *db, struct grp *groupList, struct trackDb *fullTrackList,struct composite *currentComposite, struct composite *compositeList) /* Set up globals and make web page */ { cartWebStart(cart, db, "Composite Editor"); doMainPage(database, groupList, fullTrackList, currentComposite, compositeList); cartWebEnd(); /* Save variables. */ //cartCheckout(&cart); } -static struct hash *addWigs(struct trackDb **wigList, struct trackDb *list) +static void addWigs(struct hash *hash, struct trackDb **wigList, struct trackDb *list) { -struct hash *hash = newHash(4); if (list == NULL) - return hash; + return; struct trackDb *tdb, *tdbNext; for(tdb = list; tdb; tdb = tdbNext) { tdbNext = tdb->next; - addWigs(wigList, tdb->subtracks); + addWigs(hash, wigList, tdb->subtracks); if (trackCanBeAdded(tdb)) { slAddHead(wigList, tdb); hashStore(hash, tdb->grp); } } -return hash; } char *makeUnique(struct hash *nameHash, struct trackDb *tdb) { if (hashLookup(nameHash, tdb->track) == NULL) { hashAdd(nameHash, tdb->track, tdb); return tdb->track; } unsigned count = 0; char buffer[4096]; for(;; count++) { @@ -772,31 +770,32 @@ oldVars = hashNew(10); cart = cartAndCookie(hUserCookie(), excludeVars, oldVars); /* Set up global variables. */ getDbAndGenome(cart, &database, &genome, oldVars); initGenbankTableNames(database); int timeout = cartUsualInt(cart, "udcTimeout", 300); if (udcCacheTimeout() < timeout) udcSetCacheTimeout(timeout); knetUdcInstall(); struct trackDb *fullTrackList = NULL; /* List of all tracks in database. */ struct trackDb *wigTracks = NULL; /* List of all wig tracks */ cartTrackDbInit(cart, &fullTrackList, &fullGroupList, TRUE); -struct hash *groupHash = addWigs(&wigTracks, fullTrackList); +struct hash *groupHash = newHash(5); +addWigs(groupHash, &wigTracks, fullTrackList); struct grp *grp, *grpNext, *groupList = NULL; for(grp = fullGroupList; grp; grp = grpNext) { grpNext = grp->next; if (hashLookup(groupHash, grp->name) != NULL) slAddHead(&groupList, grp); } slReverse(&groupList); /* struct grp *grpList; struct trackDb *tdbList = hubCollectTracks(database, &grpList); addWigs(&wigTracks, tdbList);