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 <a href='#' onclick='setVarAndPostForm(\"%s\",\"1\",\"mainForm\"); return false;'>Reset to defaults</a>\n",setting); } if (ct) { puts(" "); cgiMakeButton(CT_DO_REMOVE_VAR, "Remove custom track"); cgiMakeHiddenVar(CT_SELECTED_TABLE_VAR, tdb->track); puts(" "); 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 <span id='navDown' style='float:right; display:none;'>"); if (trackDbSetting(tdb, "wgEncode")) { printf(" "); makeDownloadsLink(database, tdb, trackHash); } char *downArrow = "⇓"; enum browserType browser = cgiBrowser(); if (browser == btIE || browser == btFF) downArrow = "↓"; printf(" <A HREF='#DISPLAY_SUBTRACKS' TITLE='Jump to subtracks section of page'>Subtracks%s</A>",downArrow); printf(" <A HREF='#TRACK_HTML' TITLE='Jump to description section of page'>Description%s</A>",downArrow); printf(" </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");