a6fc30fa49ef07dc75cdeff0423b7b70fe28889d braney Thu Sep 9 13:53:50 2021 -0700 oops.. a little polish on the previous commit diff --git src/hg/lib/hui.c src/hg/lib/hui.c index af6bb42..efb5846 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -6528,33 +6528,43 @@ int count = 0; struct trackDbFilter *trackDbFilters = tdbGetTrackTextFilters(tdb); if (trackDbFilters) { puts("<BR>"); struct trackDbFilter *filter = NULL; struct sqlConnection *conn = NULL; if (!isHubTrack(db)) conn = hAllocConnTrack(db, tdb); struct asObject *as = asForTdb(conn, tdb); hFreeConn(&conn); while ((filter = slPopHead(&trackDbFilters)) != NULL) { char *trackDbLabel = getLabelSetting(cart, tdb, filter->fieldName); char *value = cartUsualStringClosestToHome(cart, tdb, FALSE, filter->name, filter->setting); + if (as != NULL) + { struct asColumn *asCol = asColumnFind(as, filter->fieldName); - if (asCol == NULL) + if (asCol != NULL) + { + if (trackDbLabel == NULL) + trackDbLabel = asCol->comment; + } + else if (defaultFieldLocation(filter->fieldName) < 0) errAbort("Building filter on field %s which is not in AS file.", filter->fieldName); + } + if (trackDbLabel == NULL) + trackDbLabel = filter->fieldName; count++; printf("<P><B>Filter items in '%s' field:</B> ", trackDbLabel); char cgiVar[128]; safef(cgiVar,sizeof(cgiVar),"%s.%s",tdb->track,filter->name); cgiMakeTextVar(cgiVar, value, 45); char *setting = getFilterType(cart, tdb, filter->fieldName, FILTERTEXT_WILDCARD); safef(cgiVar,sizeof(cgiVar),"%s.%s.%s",tdb->track,FILTER_TYPE_NAME_LOW, filter->fieldName); printf(" using "); printf("<SELECT name='%s'> ", cgiVar); printf("<OPTION %s>%s</OPTION>", sameString(setting, FILTERTEXT_WILDCARD) ? "SELECTED" : "", FILTERTEXT_WILDCARD ); printf("<OPTION %s>%s</OPTION>", sameString(setting, FILTERTEXT_REGEXP) ? "SELECTED" : "", FILTERTEXT_REGEXP ); printf("</SELECT>");