eb712f3c5bc68c3875bebcd554ea523c26461c82
angie
  Wed Aug 18 13:17:15 2010 -0700
Added support for new trackDb setting 'tableBrowser off' which prevents hgTables from displaying a track (if related tables need to be excluded from All Tables, they go after 'off', space-sep.
diff --git src/hg/hgTables/hgTables.c src/hg/hgTables/hgTables.c
index f5ccac3..cf6c68e 100644
--- src/hg/hgTables/hgTables.c
+++ src/hg/hgTables/hgTables.c
@@ -53,6 +53,7 @@
 struct grp *curGroup;	/* Currently selected group. */
 struct trackDb *fullTrackList;	/* List of all tracks in database. */
 struct hash *fullTrackHash;     /* Hash of all tracks in fullTrackList keyed by ->track field. */
+struct trackDb *forbiddenTrackList; /* List of tracks with 'tableBrowser off' setting. */
 struct trackDb *curTrack;	/* Currently selected track. */
 char *curTable;		/* Currently selected table. */
 struct joiner *allJoiner;	/* Info on how to join tables. */
@@ -231,6 +232,20 @@
 struct trackDb *list = hTrackDb(database, NULL);
 struct customTrack *ctList, *ct;
 
+/* exclude any track with a 'tableBrowser off' setting */
+struct trackDb *tdb, *nextTdb, *newList = NULL;
+for (tdb = list;  tdb != NULL;  tdb = nextTdb)
+    {
+    nextTdb = tdb->next;
+    char *tbOff = trackDbSetting(tdb, "tableBrowser");
+    if (tbOff != NULL && startsWithWord("off", tbOff))
+	slAddHead(&forbiddenTrackList, tdb);
+    else
+	slAddHead(&newList, tdb);
+    }
+slReverse(&newList);
+list = newList;
+
 /* add wikiTrack if enabled */
 if (wikiTrackEnabled(database, NULL))
     wikiTrackDb(&list);