e0efbc35a602297f56c937498724da6553944b64
larrym
  Thu Dec 9 11:46:16 2010 -0800
fix problem that made "Update custom track" button not work in modal dialog
diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c
index 828ff0c..1a6990e 100644
--- src/hg/hgTrackUi/hgTrackUi.c
+++ src/hg/hgTrackUi/hgTrackUi.c
@@ -2537,60 +2537,67 @@
     {
     printf(" ");
     cgiMakeButton("Submit", "Submit");
 
     if(tdbIsComposite(tdb))
         printf("\n&nbsp;&nbsp;<a href='#' onclick='setVarAndPostForm(\"%s\",\"1\",\"mainForm\"); return false;'>Reset to defaults</a>\n",setting);
     }
 
 if (ct)
     {
     puts("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
     cgiMakeButton(CT_DO_REMOVE_VAR, "Remove custom track");
     cgiMakeHiddenVar(CT_SELECTED_TABLE_VAR, tdb->track);
     puts("&nbsp;");
     if (differentString(tdb->type, "chromGraph"))
-        cgiMakeOnClickButton("document.customTrackForm.submit();return false;",
-                                "Update custom track");
+        {
+        char buf[256];
+        if(ajax)
+            // reference to a separate form doesn't work in modal dialog, so change window.location directly.
+            safef(buf, sizeof(buf), "window.location='%s?hgsid=%d&%s=%s';return false;", hgCustomName(), cartSessionId(cart), CT_SELECTED_TABLE_VAR, tdb->track);
+        else
+            safef(buf, sizeof(buf), "document.customTrackForm.submit();return false;");
+        cgiMakeOnClickButton(buf, "Update custom track");
+        }
     }
 
 if (!tdbIsSuper(tdb))
     {
     // NAVLINKS - For pages w/ matrix, add Description, Subtracks and Downloads links
     if (trackDbSetting(tdb, "dimensions"))
         {
         printf("\n&nbsp;&nbsp;<span id='navDown' style='float:right; display:none;'>");
         if (trackDbSetting(tdb, "wgEncode"))
             {
             printf("&nbsp;&nbsp;");
             makeDownloadsLink(database, tdb, trackHash);
             }
         char *downArrow = "&dArr;";
         enum browserType browser = cgiBrowser();
         if (browser == btIE || browser == btFF)
             downArrow = "&darr;";
         printf("&nbsp;&nbsp;<A HREF='#DISPLAY_SUBTRACKS' TITLE='Jump to subtracks section of page'>Subtracks%s</A>",downArrow);
         printf("&nbsp;&nbsp;<A HREF='#TRACK_HTML' TITLE='Jump to description section of page'>Description%s</A>",downArrow);
         printf("&nbsp;</span>");
         }
     }
 printf("<BR>\n");
 
 specificUi(tdb, ct, ajax);
 puts("</FORM>");
 
-if (ct)
+if (ct && !ajax)
     {
     /* hidden form for custom tracks CGI */
     printf("<FORM ACTION='%s' NAME='customTrackForm'>", hgCustomName());
     cartSaveSession(cart);
     cgiMakeHiddenVar(CT_SELECTED_TABLE_VAR, tdb->track);
     puts("</FORM>\n");
     }
 
 if (ajax)
     return;
 
 if (!ct)
     {
     /* Print data version trackDB setting, if any */
     char *version = trackDbSetting(tdb, "dataVersion");