7544fd2a03bf573a9a12195d86a2fc082a88de78 tdreszer Tue Apr 5 15:17:56 2011 -0700 Tightened the screws on searching by mdb vars where the search is either for files or tables diff --git src/hg/lib/fileUi.c src/hg/lib/fileUi.c index 2e31581..e7c46e3 100644 --- src/hg/lib/fileUi.c +++ src/hg/lib/fileUi.c @@ -402,31 +402,31 @@ { // Will create filterBoxes for each sortOrder field. Returns count of filterBoxes made int count = 0; if (sortOrder != NULL) { struct dyString *dyFilters = dyStringNew(256); int sIx=0; for(sIx = 0;sIx<sortOrder->count;sIx++) { char *var = sortOrder->column[sIx]; enum cvSearchable searchBy = cvSearchMethod(var); //if (searchBy == cvSearchByDateRange || searchBy == cvSearchByIntegerRange) // dates and numbers probably not good for filtering. FIXME: Should cvsNotSearchable be filterable?? if (searchBy != cvSearchBySingleSelect && searchBy != cvSearchByMultiSelect) continue; // Only single selects and multi-select make good candidates for filtering struct sqlConnection *conn = hAllocConn(db); - struct slPair *valsAndLabels = mdbValLabelSearch(conn, var, MDB_VAL_STD_TRUNCATION, FALSE, TRUE, TRUE); // tags, yes tables AND files + struct slPair *valsAndLabels = mdbValLabelSearch(conn, var, MDB_VAL_STD_TRUNCATION, FALSE, FALSE, TRUE); // not tags, not tables, just files hFreeConn(&conn); // Need to verify that each val exists in an object for these files struct slPair *relevantVals = NULL; while(valsAndLabels != NULL) { struct slPair *oneVal = slPopHead(&valsAndLabels); if(mdbObjsContainAltleastOneMatchingVar(mdbObjs,var,mdbPairVal(oneVal))) { eraseNonAlphaNum(mdbPairVal(oneVal)); // Have to squeeze out uglies from val to ensure filter by class works slAddHead(&relevantVals,oneVal); } else slPairFreeValsAndList(&oneVal); } if (slCount(relevantVals) > 1)