f31b0c7755da1ffe944a89e1d0a572eafa135ea7 angie Mon Jan 26 15:48:43 2015 -0800 Add yet another special case for all_* tables. diff --git src/hg/hgAi/hgAi.c src/hg/hgAi/hgAi.c index d15ddaf..9f9b78a 100644 --- src/hg/hgAi/hgAi.c +++ src/hg/hgAi/hgAi.c @@ -78,48 +78,53 @@ static void getFields(struct cartJson *cj, struct hash *paramHash) /* Print out the fields of the tables in comma-sep tables param. */ { char *tableStr = cartJsonRequiredParam(paramHash, "tables", cj->jw, "getFields"); if (! tableStr) return; char *db = cartString(cart, "db"); struct slName *table, *tables = slNameListFromComma(tableStr); jsonWriteObjectStart(cj->jw, "tableFields"); struct trackDb *fullTrackList = NULL; struct grp *fullGroupList = NULL; cartTrackDbInit(cj->cart, &fullTrackList, &fullGroupList, /* useAccessControl= */TRUE); for (table = tables; table != NULL; table = table->next) { - struct trackDb *tdb = tdbForTrack(NULL, table->name, &fullTrackList); + char *tableName = table->name; + if (startsWith("all_", tableName)) + tableName += strlen("all_"); + struct trackDb *tdb = tdbForTrack(NULL, tableName, &fullTrackList); if (tdb) { struct asObject *asObj = hAnnoGetAutoSqlForTdb(db, hDefaultChrom(db), tdb); if (asObj) { jsonWriteObjectStart(cj->jw, table->name); char label[strlen(tdb->shortLabel) + strlen(table->name) + PATH_LEN]; makeTrackLabel(tdb, table->name, label, sizeof(label)); jsonWriteString(cj->jw, "label", label); jsonWriteListStart(cj->jw, "fields"); struct asColumn *col; for (col = asObj->columnList; col != NULL; col = col->next) jsonWriteString(cj->jw, NULL, col->name); jsonWriteListEnd(cj->jw); jsonWriteObjectEnd(cj->jw); } } + else + warn("No tdb for %s", table->name); } jsonWriteObjectEnd(cj->jw); slFreeList(&tables); } void doCartJson() /* Perform UI commands to update the cart and/or retrieve cart vars & metadata. */ { struct cartJson *cj = cartJsonNew(cart); cartJsonRegisterHandler(cj, "changeDb", changeDb); cartJsonRegisterHandler(cj, "changeOrg", changeOrg); cartJsonRegisterHandler(cj, "changeClade", changeClade); cartJsonRegisterHandler(cj, "getFields", getFields); cartJsonExecute(cj); }