6e57bd7dddafb83f609a22cba99c47c97fb506d9
tdreszer
  Thu Sep 9 09:09:18 2010 -0700
hgTrackUi can now use ajax to update composite/view settings, which enables keeping subtrack level v. composite/view level settings properly influencing each other.  That is, timing is important in ensuring that composite/view level changes overrides subtrack level settings.  The triggers for this code in hui.c are all ifdef'd on SUBTRACK_CFG_POPUP.
diff --git src/hg/cartDump/cartDump.c src/hg/cartDump/cartDump.c
index 7597a3f..d273e90 100644
--- src/hg/cartDump/cartDump.c
+++ src/hg/cartDump/cartDump.c
@@ -4,12 +4,14 @@
 #include "hash.h"
 #include "cheapcgi.h"
 #include "cart.h"
+#include "hdb.h"
 #include "jsHelper.h"
 #include "hui.h"
 
 static char const rcsid[] = "$Id: cartDump.c,v 1.14 2008/12/09 00:41:20 angie Exp $";
 
 #define CART_DUMP_REMOVE_VAR "n/a"
+struct hash *oldVars = NULL;
 
 void doMiddle(struct cart *cart)
 /* cartDump - Dump contents of cart. */
@@ -39,6 +41,15 @@
     }
 if (cgiVarExists("noDisplay"))
     {
+    char *trackName = cgiOptionalString("g");
+    if(trackName != NULL && hashNumEntries(oldVars) > 0)
+        {
+        char *db = cartString(cart, "db");
+        struct trackDb *tdb = hTrackDbForTrack(db, trackName);
+        if(tdb != NULL && tdbIsComposite(tdb))
+            cartTdbTreeCleanupOverrides(tdb,cart,oldVars);
+        }
+
     return;
     }
 if (asTable)
@@ -97,6 +108,7 @@
 /* Process command line. */
 {
 cgiSpoof(&argc, argv);
-cartHtmlShell("Cart Dump", doMiddle, hUserCookie(), excludeVars, NULL);
+oldVars = hashNew(10);
+cartHtmlShell("Cart Dump", doMiddle, hUserCookie(), excludeVars, oldVars);
 return 0;
 }