1eaedcf685289f4cddd2f7c1206e8fb2d90ce0bf braney Mon May 6 17:22:43 2019 -0700 allow users to turn on or off advanced controls in filters diff --git src/hg/lib/hui.c src/hg/lib/hui.c index 71f92cd..1ad43a8 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -3942,30 +3942,38 @@ filterBy_t *filterBySet, boolean onOneLine, char *filterTypeTitle, char *selectIdPrefix, char *allLabel, char *prefix) // Does the UI for a list of filterBy structure for either filterBy or highlightBy controls { if (filterBySet == NULL) return; #define FILTERBY_HELP_LINK "help" int count = slCount(filterBySet); if (count == 1) puts(""); else printf("%s items by: (select multiple categories and items - %s)" "
\n",filterTypeTitle,FILTERBY_HELP_LINK); +printf(" Advanced options"); +char varName[1024]; +safef(varName, sizeof(varName), "%s.doAdvanced", tdb->track); +cgiMakeCheckBox(varName, FALSE); +printf("
"); +jsInlineF("$(function () { advancedSearchOnChange('%s'); });\n", varName); + + filterBy_t *filterBy = NULL; if (cartOptionalString(cart, "ajax") == NULL) { webIncludeResourceFile("ui.dropdownchecklist.css"); jsIncludeFile("ui.dropdownchecklist.js",NULL); jsIncludeFile("ddcl.js",NULL); } int ix=0; for(filterBy = filterBySet;filterBy != NULL; filterBy = filterBy->next, ix++) { char settingString[4096]; safef(settingString, sizeof settingString, "%s%s", filterBy->column, FILTER_TYPE_NAME); char *setting = cartOrTdbString(cart, tdb, settingString, FILTERBY_MULTIPLE_LIST_AND); boolean isMultiple = sameString(setting, FILTERBY_MULTIPLE) ||sameString(setting, FILTERBY_MULTIPLE_LIST_OR) ||sameString(setting, FILTERBY_MULTIPLE_LIST_AND); @@ -3974,35 +3982,35 @@ char selectStatement[4096]; if (isMultiple) safef(selectStatement, sizeof selectStatement, " (select multiple items - %s)", FILTERBY_HELP_LINK); else selectStatement[0] = 0; if(count == 1) printf("%s by %s%s",filterTypeTitle,filterBy->title,selectStatement); else printf("%s",filterBy->title); printf("
\n"); if (isMultiple && tdbIsBigBed(tdb)) { char cartSettingString[4096]; safef(cartSettingString, sizeof cartSettingString, "%s.%s", prefix, settingString); - printf("Match if "); + printf(" "); } // TODO: columnCount (Number of filterBoxes per row) should be configurable through tdb setting // value is always "All", even if label is different, to simplify javascript code int valIx = 0; if (isMultiple) { printf( "\n", selectIdPrefix,ix,filterBy->htmlName); valIx = 0;