ddeedc6ab30032756ea7ccddabec70f01357d035 tdreszer Wed Sep 22 09:45:43 2010 -0700 Reformatted tabs and added search toggle diff --git src/hg/hgTracks/searchTracks.c src/hg/hgTracks/searchTracks.c index 902efd5..4cde524 100644 --- src/hg/hgTracks/searchTracks.c +++ src/hg/hgTracks/searchTracks.c @@ -33,6 +33,35 @@ return strcmp(a->label, b->label); } +// Would like to do a radio button choice ofsorts +#define SORT_BY_HIERARCHY +#ifdef SORT_BY_HIERARCHY +#define SORT_BY_VAR "findTracksSortBy" +#define SORT_BY_ABC "abc" +#define SORT_BY_HIER "hier" +static int gCmpTrackHierarchy(const void *va, const void *vb) +/* Compare tracks based on longLabel. */ +{ +const struct slRef *aa = *((struct slRef **)va); +const struct slRef *bb = *((struct slRef **)vb); +const struct track *a = ((struct track *) aa->val); +const struct track *b = ((struct track *) bb->val); + if ( tdbIsSuperTrack(a->tdb) && !tdbIsSuperTrack(b->tdb)) + return -1; +else if (!tdbIsSuperTrack(a->tdb) && tdbIsSuperTrack(b->tdb)) + return 1; + if ( tdbIsComposite(a->tdb) && !tdbIsComposite(b->tdb)) + return -1; +else if (!tdbIsComposite(a->tdb) && tdbIsComposite(b->tdb)) + return 1; + if (!tdbIsCompositeChild(a->tdb) && tdbIsCompositeChild(b->tdb)) + return -1; +else if ( tdbIsCompositeChild(a->tdb) && !tdbIsCompositeChild(b->tdb)) + return 1; +return strcasecmp(a->longLabel, b->longLabel); +} +#endif///def SORT_BY_HIERARCHY + static int gCmpTrack(const void *va, const void *vb) /* Compare tracks based on longLabel. */ { @@ -40,7 +69,7 @@ const struct slRef *bb = *((struct slRef **)vb); const struct track *a = ((struct track *) aa->val); const struct track *b = ((struct track *) bb->val); -return strcmp(a->longLabel, b->longLabel); +return strcasecmp(a->longLabel, b->longLabel); } // XXXX make a matchString function to support "contains", "is" etc. and wildcards in contains @@ -306,6 +335,7 @@ webStartWrapperDetailedNoArgs(cart, database, "", "Search for Tracks", FALSE, FALSE, FALSE, FALSE); +hPrintf("