30f24c3014f7c5157e304ec6f513cfb99647a04a braney Fri Apr 19 17:08:44 2013 -0700 order assemblies by orderKey in gateway drop-down. diff --git src/hg/lib/trackHub.c src/hg/lib/trackHub.c index ec1f5a8..67da836 100644 --- src/hg/lib/trackHub.c +++ src/hg/lib/trackHub.c @@ -107,30 +107,31 @@ return cloneString(ret); } static struct dbDb *makeDbDbFromAssemblyGenome(struct trackHubGenome *hubGenome) /* Make a dbdb struture from a single assembly hub database. */ { struct dbDb *db; AllocVar(db); db->genome = cloneString(hubGenome->organism); db->organism = cloneString(hubGenome->organism); db->name = cloneString(hubGenome->name); db->active = TRUE; db->description = cloneString(hubGenome->description); +db->orderKey = sqlUnsigned(hashFindVal(hubGenome->settingsHash, "orderKey")); return db; } struct dbDb *trackHubDbDbFromAssemblyDb(char *database) /* Return a dbDb structure for just this database. */ { if (hubAssemblyHash == NULL) errAbort("requesting hub assembly dbDb with no hubs loaded"); struct hashEl *hel = hashLookup(hubAssemblyHash, database); if (hel == NULL) return NULL; struct trackHubGenome *genome = hel->val; return makeDbDbFromAssemblyGenome(genome); @@ -171,30 +172,32 @@ if ((clade != NULL) && differentString(clade, trackHub->name)) continue; struct trackHubGenome *hubGenome = trackHub->genomeList; for(; hubGenome; hubGenome = hubGenome->next) { if (hubGenome->twoBitPath != NULL) { db = makeDbDbFromAssemblyGenome(hubGenome); slAddHead(&dbList, db); } } } } +slSort(&dbList, hDbDbCmpOrderKey); +slReverse(&dbList); return dbList; } int trackHubChromCount(char *database) /* Return number of chromosomes in a assembly data hub. */ { struct hashEl *hel = hashLookup(hubAssemblyHash, database); if (hel == NULL) return 0; struct trackHubGenome *genome = hel->val; struct slName *chromList = twoBitSeqNames(genome->twoBitPath); int num = slCount(chromList); slFreeList(&chromList);