3c3a220811cc755ee2f8e18d3188674729efd110 angie Wed Nov 25 16:51:40 2015 -0800 hgCustom was removing its hgct_navDest var from the cart because it removes every "hgct_" cart var when it's done! Tweak the prefix to make navDest persist in the cart. diff --git src/hg/hgCustom/hgCustom.c src/hg/hgCustom/hgCustom.c index 0de51df..40c9953 100644 --- src/hg/hgCustom/hgCustom.c +++ src/hg/hgCustom/hgCustom.c @@ -34,46 +34,47 @@ "hgCustom - Custom track management CGI\n" "usage:\n" " hgCustom <CGI settings>\n" ); } /* DON'T EDIT THIS -- use CGI param "&measureTiming=." */ static boolean measureTiming = FALSE; #define TEXT_ENTRY_ROWS 7 #define TEXT_ENTRY_COLS 73 #define CONFIG_ENTRY_ROWS 3 #define SAVED_LINE_COUNT 50 /* CGI variables */ -#define hgCt "hgct_" /* prefix for all control variables */ - +#define hgCt "hgct_" /* prefix for all control variables; these are removed at end! */ +#define hgCtNoRemove "hgctNoRemove_" /* these are shared with other modules */ #define hgCtDataText CT_CUSTOM_TEXT_ALT_VAR #define hgCtDataFile CT_CUSTOM_FILE_VAR #define hgCtDataFileName CT_CUSTOM_FILE_NAME_VAR #define hgCtDocText CT_CUSTOM_DOC_TEXT_VAR #define hgCtDocFile CT_CUSTOM_DOC_FILE_VAR #define hgCtTable CT_SELECTED_TABLE_VAR #define hgCtUpdatedTable CT_UPDATED_TABLE_VAR /* misc */ #define hgCtUpdatedTrack "hgct_updatedTrack" #define hgCtDeletePrefix "hgct_del" #define hgCtRefreshPrefix "hgct_refresh" #define hgCtConfigLines "hgct_configLines" +#define hgCtNavDest hgCtNoRemove "navDest" /* commands */ #define hgCtDo hgCt "do_" /* prefix for all commands */ #define hgCtDoAdd hgCtDo "add" #define hgCtDoDelete hgCtDo "delete" #define hgCtDoDeleteSet hgCtDo "delete_set" #define hgCtDoDeleteClr hgCtDo "delete_clr" #define hgCtDoRefresh hgCtDo "refresh" #define hgCtDoRefreshSet hgCtDo "refresh_set" #define hgCtDoRefreshClr hgCtDo "refresh_clr" #define hgCtDoGenomeBrowser hgCtDo "gb" #define hgCtDoTableBrowser hgCtDo "tb" #ifdef PROGRESS_METER #define hgCtDoProgress hgCtDo "progress" #endif @@ -644,31 +645,30 @@ /* Return {value, label} pairs with other CGIs the user might wish to jump to. */ { struct slPair *valsAndLabels = slPairNew(hgTracksName(), "Genome Browser"); slAddHead(&valsAndLabels, slPairNew(hgTablesName(), "Table Browser")); slAddHead(&valsAndLabels, slPairNew(hgVaiName(), "Variant Annotation Integrator")); slAddHead(&valsAndLabels, slPairNew(hgIntegratorName(), "Data Integrator")); slReverse(&valsAndLabels); return valsAndLabels; } static void makeOtherCgiForm(char *pos) /* Make a form for navigating to other CGIs. */ { struct slPair *valsAndLabels = makeOtherCgiValsAndLabels(); // Default to the first CGI in the menu. -#define hgCtNavDest "hgct_navDest" char *defaultCgi = valsAndLabels->name; char *selected = cartUsualString(cart, hgCtNavDest, defaultCgi); printf("<FORM STYLE=\"margin-bottom:0;\" METHOD=\"GET\" NAME=\"navForm\" ID=\"navForm\"" " ACTION=\"%s\">\n", selected); cartSaveSession(cart); if (pos) cgiMakeHiddenVar("position", pos); printf("view in "); // Construct a menu of destination CGIs char *extraHtml = "id=\"navSelect\" " "onChange=\"var newVal = $('#navSelect').val(); $('#navForm').attr('action', newVal);\""; puts(cgiMakeSingleSelectDropList(hgCtNavDest, valsAndLabels, selected, NULL, NULL, extraHtml)); cgiMakeButton("submit", "go"); puts("</FORM>"); }