9786016a1473b5a4f97283db2cf34a092e0085c1 chmalee Wed Mar 18 09:25:39 2020 -0700 Add udcTimout and measureTiming to validate form to save the checkbox selections for after checking the hub, pointed out by Dan, refs #24559 diff --git src/hg/hgHubConnect/hgHubConnect.c src/hg/hgHubConnect/hgHubConnect.c index f52d4d6..18874e3 100644 --- src/hg/hgHubConnect/hgHubConnect.c +++ src/hg/hgHubConnect/hgHubConnect.c @@ -426,75 +426,83 @@ "type=\"text\" size=\"65\"> \n"); } printf("<input name=\"hubValidateButton\" id='hubValidateButton' " "class=\"hubField\" type=\"button\" value=\"Check Hub settings\">\n"); printf(" or \n"); printf("<input name=\"hubLoadMaybeTiming\" id='hubLoadMaybeTiming' " "class=\"hubField\" type=\"button\" value=\"Load Hub\">\n"); printf("</div>\n"); // validateHubUrlRow div printf("<div id=\"extraSettingsContainer\" class=\"addHubBar\">\n"); printf("<img id=\"advancedSettingsButton\" src=\"../images/add_sm.gif\">\n"); printf("Advanced Settings"); char *measureTiming = cartCgiUsualString(cart, "measureTiming", NULL); char *udcTimeout = cartCgiUsualString(cart, "udcTimeout", NULL); +boolean doMeasureTiming = isNotEmpty(measureTiming); +boolean doUdcTimeout = isNotEmpty(udcTimeout); printf("<div id=\"extraSettingsList\" style=\"display: none\">\n"); printf("<ul style=\"list-style-type:none\">\n<li>\n"); // measureTiming first printf("<input name=\"addMeasureTiming\" id=\"addMeasureTiming\" " - "class=\"hubField\" type=\"checkbox\" %s>", measureTiming != NULL ? "checked": ""); + "class=\"hubField\" type=\"checkbox\" %s>", doMeasureTiming ? "checked": ""); printf("<label for=\"addMeasureTiming\">Display load times</label>\n"); // and a tooltip explaining this checkbox printf("<div class=\"tooltip\"> (?)\n"); printf("<span class=\"tooltiptext\">" "Checking this box shows the timing measurements below the Genome Browser image. " "Useful for determining slowdowns to loading or drawing tracks." "</span>\n"); printf("</div></li>\n"); // tooltip div printf("<li>\n"); // udcTimeout enable/disable printf("<input name=\"disableUdcTimeout\" id=\"disableUdcTimeout\" " - "class=\"hubField\" type=\"checkbox\" %s >", udcTimeout != NULL ? "checked" : ""); + "class=\"hubField\" type=\"checkbox\" %s >", doUdcTimeout ? "checked" : ""); printf("<label for=\"disableUdcTimeout\">Enable hub refresh</label>\n"); // add a tooltip explaining these checkboxes printf("<div class=\"tooltip\"> (?)\n"); printf("<span class=\"tooltiptext\">" "Checking this box changes the cache expiration time (default of 5 minutes) " "and allows the Genome Browser to reload Hub configuration and data files with each refresh." "</span>\n"); printf("</div></li>\n"); // tooltip div printf("</ul>\n"); printf("</div>\n"); // extraSettingsList div printf("</div>\n"); // extraSettingsContainer div if (hubUrl != NULL && doHubValidate) doValidateNewHub(hubUrl); else printf("<div id=\"hubDeveloperInstructions\">Enter URL to hub to check configuration settings " "or load hub </div> \n"); printf("</div>"); // hubDeveloper div jsOnEventById("click", "hubValidateButton", "var validateText = document.getElementById('validateHubUrl');" + "var udcTimeout = document.getElementById('disableUdcTimeout').checked === true;" + "var doMeasureTiming = document.getElementById('addMeasureTiming').checked === true;" "validateText.value=$.trim(validateText.value);" "if(validateUrl($('#validateHubUrl').val())) { " " document.validateHubForm.elements['validateHubUrl'].value=validateText.value;" " document.validateHubForm.elements['" hgHubDoHubCheck "'].value='on';" + " if (doMeasureTiming) { document.validateHubForm.elements['measureTiming'].value='1'; }" + " else { document.validateHubForm.elements['measureTiming'].value=''}" + " if (udcTimeout) { document.validateHubForm.elements['udcTimeout'].value='1'; }" + " else { document.validateHubForm.elements['udcTimeout'].value=''}" " document.validateHubForm.submit(); return true; }" "else { return false; }" ); jsOnEventById("click", "hubLoadMaybeTiming", "var validateText = document.getElementById('validateHubUrl');" "var udcTimeout = document.getElementById('disableUdcTimeout').checked === true;" "var doMeasureTiming = document.getElementById('addMeasureTiming').checked === true;" "validateText.value=$.trim(validateText.value);" "if(validateUrl($('#validateHubUrl').val())) {" " loc = \"../cgi-bin/hgTracks?&hgHub_do_firstDb=on\" + \"&hubUrl=\" + validateText.value;" " if (doMeasureTiming) { loc += \"&measureTiming=1\";} else { loc += \"&measureTiming=[]\"; }" " if (udcTimeout) { loc += \"&udcTimeout=5\"; } else { loc += \"&udcTimeout=[]\"; }" " window.location.href=loc; " "} else { return false; }" ); @@ -1752,30 +1760,32 @@ puts("</FORM>"); // this is the form for the search hub button printf("<FORM ACTION=\"%s\" NAME=\"searchHubForm\">\n", "../cgi-bin/hgHubConnect"); cgiMakeHiddenVar(hgHubSearchTerms, ""); cgiMakeHiddenVar(hgHubDoSearch, "on"); cgiMakeHiddenVar(hgHubDbFilter, ""); cartSaveSession(cart); puts("</FORM>"); // this is the form for the validate button if (doHubDevMode) { printf("<FORM ACTION=\"%s\" NAME=\"validateHubForm\">\n", "../cgi-bin/hgHubConnect"); cgiMakeHiddenVar("validateHubUrl", ""); + cgiMakeHiddenVar("measureTiming", ""); + cgiMakeHiddenVar("udcTimeout", ""); // allows saving the old url in the search bar but not run hubCheck on it right away // mostly for when you come back to hgHubConnect after just looking at hgTracks cgiMakeHiddenVar(hgHubDoHubCheck, "off"); cartSaveSession(cart); puts("</FORM>"); } // ... and now the main form printf("<FORM ACTION=\"%s\" METHOD=\"POST\" NAME=\"mainForm\">\n", "../cgi-bin/hgGateway"); cartSaveSession(cart); // we have two tabs for the public and unlisted hubs printf("<div id=\"tabs\">" "<ul> <li><a class=\"defaultDesc\" href=\"#publicHubs\">Public Hubs</a></li>" "<li><a class=\"defaultDesc\" href=\"#unlistedHubs\">My Hubs</a></li> ");