749553d06451930286cb888d66e8b665c33dcaf5
braney
  Wed Mar 7 12:42:26 2018 -0800
fix a couple problems with not cleaning up trackDb entries

diff --git src/hg/hgCollection/hgCollection.c src/hg/hgCollection/hgCollection.c
index 792317c..192ef6a 100644
--- src/hg/hgCollection/hgCollection.c
+++ src/hg/hgCollection/hgCollection.c
@@ -535,30 +535,31 @@
 if (bigDataUrl == NULL)
     {
     if (startsWith("bigWig", tdb->type))
         {
         if (conn == NULL)
             errAbort("track hub has bigWig without bigDataUrl");
         dataUrl = getSqlBigWig(conn, db, tdb);
         hashReplace(tdb->settingsHash, "bigDataUrl", dataUrl);
         }
     }
 
 char *tdbType = trackDbSetting(tdb, "tdbType");
 if (tdbType != NULL)
     hashReplace(tdb->settingsHash, "type", tdbType);
 
+hashRemove(tdb->settingsHash, "superTrack");
 hashReplace(tdb->settingsHash, "parent", parent);
 hashReplace(tdb->settingsHash, "shortLabel", track->shortLabel);
 hashReplace(tdb->settingsHash, "longLabel", track->longLabel);
 hashReplace(tdb->settingsHash, "track", makeUnique(collectionNameHash, name));
 char priBuf[128];
 safef(priBuf, sizeof priBuf, "%d", priority);
 hashReplace(tdb->settingsHash, "priority", cloneString(priBuf));
 char colorString[64];
 safef(colorString, sizeof colorString, "%d,%d,%d", (color >> 16) & 0xff,(color >> 8) & 0xff,color & 0xff);
 hashReplace(tdb->settingsHash, "color", colorString);
 
 struct dyString *dy = trackDbString(tdb);
 
 fprintf(f, "%s",  dy->string);
 fprintf(f, "\n");
@@ -884,31 +885,31 @@
 if (bigDataUrl == NULL)
     {
     if (startsWith("bigWig", tdb->type))
         {
         if (conn == NULL)
             errAbort("track hub has bigWig without bigDataUrl");
         dataUrl = getSqlBigWig(conn, db, tdb);
         }
     }
 
 struct hashCookie cookie = hashFirst(tdb->settingsHash);
 while ((hel = hashNext(&cookie)) != NULL)
     {
     if (sameString("parent", hel->name))
         fprintf(f, "%s%s %s\n", tabs,hel->name, trackHubSkipHubName((char *)hel->val));
-    else if (!(sameString("track", hel->name) || sameString("polished", hel->name)|| sameString("group", hel->name) || sameString("priority", hel->name)))
+    else if (!(sameString("track", hel->name) || sameString("polished", hel->name)|| sameString("group", hel->name) || sameString("priority", hel->name) || sameString("subTrack", hel->name)))
         fprintf(f, "%s%s %s\n", tabs,hel->name, (char *)hel->val);
     }
 
 if (bigDataUrl == NULL)
     {
     if (dataUrl != NULL)
         fprintf(f, "%sbigDataUrl %s\n", tabs,dataUrl);
     }
 
 fprintf(f, "\n");
 }
 
 static void outTrackDbList(char *db, struct sqlConnection *conn, FILE *f, char *hubName, struct trackDb *list, char *collectionName, struct trackDb *newTdb,  int numTabs, int priority)
 /* Put a list of trackDb entries into a collection, adding a new track to the collection. */
 {
@@ -1025,31 +1026,31 @@
     char *shortLabel = "New Collection";
     char *longLabel = "Description of New Collection";
     struct trackDb *tdb;
 
     AllocVar(tdb);
     slAddHead(&superList, tdb);
     tdb->settingsHash = newHash(5);
     tdb->type = cloneString("wig");
 
     hashAdd(tdb->settingsHash, "track", collectionName);
     hashAdd(tdb->settingsHash, "shortLabel", shortLabel);
     hashAdd(tdb->settingsHash, "longLabel", longLabel);
     hashAdd(tdb->settingsHash, "autoScale", "on");
     hashAdd(tdb->settingsHash, "compositeTrack", "on");
     hashAdd(tdb->settingsHash, "aggregate", "none");
-    hashAdd(tdb->settingsHash, "type", "wig");
+    hashAdd(tdb->settingsHash, "type", "mathWig");
     hashAdd(tdb->settingsHash, "visibility", "full");
     hashAdd(tdb->settingsHash, "color", "0,0,0");
     hashAdd(tdb->settingsHash, CUSTOM_COMPOSITE_SETTING, "on");
 
     doAddTrack(cart, db, superList, trackName, collectionName, nameHash);
     apiOut("{\"serverSays\": \"new %s to collection\"}", NULL);
     }
 else if (sameString("saveCollection", cmd))
     {
     char *jsonIn = cgiUsualString("jsonp", NULL);
     doAjax(cart, db, jsonIn, nameHash);
     apiOut("{\"serverSays\": \"Collections saved successfully.\"}", NULL);
     }
 }