0615451d856749db2e4febb4995ff8aee72a8f25 angie Wed Jan 7 12:04:18 2015 -0800 Adding cartJson lib module (to be used by hgAi). It parses JSON commands andreturns information in JSON to support moving more UI actions into Javascript. The lib supports basic queries and actions like getting a list of the groups, tracks and tables (incl. hubs & CTs) and changing the clade/genome/db. Apps/CGIs can extend it to handle new commands by registering handler functions. diff --git src/hg/lib/customTrack.c src/hg/lib/customTrack.c index 912de8f..6b9ab70 100644 --- src/hg/lib/customTrack.c +++ src/hg/lib/customTrack.c @@ -985,50 +985,56 @@ struct customTrack *customTracksParseCart(char *genomeDb, struct cart *cart, struct slName **retBrowserLines, char **retCtFileName) /* Parse custom tracks from cart variables */ { char *err = NULL; struct customTrack *ctList = customTracksParseCartDetailed(genomeDb, cart, retBrowserLines, retCtFileName, NULL, NULL, &err); if (err) warn("%s", err); return ctList; } -boolean customTracksExist(struct cart *cart, char **retCtFileName) -/* determine if there are any custom tracks. Cleanup from expired tracks */ +boolean customTracksExistDb(struct cart *cart, char *db, char **retCtFileName) +/* determine if there are any custom tracks for db. Cleanup from expired tracks */ { -char *ctFileVar = customTrackFileVar(cartString(cart, "db")); +char *ctFileVar = customTrackFileVar(db); char *ctFileName = cartOptionalString(cart, ctFileVar); if (ctFileName) { if (fileExists(ctFileName)) { if (retCtFileName) *retCtFileName = ctFileName; return TRUE; } /* expired custom tracks file */ cartRemove(cart, ctFileVar); cartRemovePrefix(cart, CT_PREFIX); } return FALSE; } +boolean customTracksExist(struct cart *cart, char **retCtFileName) +/* determine if there are any custom tracks. Cleanup from expired tracks */ +{ +return customTracksExistDb(cart, cartString(cart, "db"), retCtFileName); +} + boolean isCustomTrack(char *track) /* determine if track name refers to a custom track */ { return (startsWith(CT_PREFIX, track)); } void customTrackDump(struct customTrack *track) /* Write out info on custom track to stdout */ { if (track->tdb) printf("settings: %s
\n", track->tdb->settings); printf("genome db: %s
\n", track->genomeDb); printf("bed count: %d
\n", slCount(track->bedList)); printf("field count: %d
\n", track->fieldCount); printf("maxChromName: %d
\n", track->maxChromName);