49b9c04a8f1e314efd91900c53b75105231c6ab8 tdreszer Tue Oct 5 16:09:46 2010 -0700 mdb val dropdown now shows cv.ra 'label' instead of val if one exists. diff --git src/hg/hgTracks/searchTracks.c src/hg/hgTracks/searchTracks.c index 72e5b3e..630811f 100644 --- src/hg/hgTracks/searchTracks.c +++ src/hg/hgTracks/searchTracks.c @@ -148,21 +148,29 @@ return FALSE; } -static int getTermArray(struct sqlConnection *conn, char ***terms, char *type) +static int getTermArray(struct sqlConnection *conn, char ***pLabels, char ***pTerms, char *type) // Pull out all term fields from ra entries with given type // Returns count of items found and items via the terms argument. { -int i, count = 0; -char **retVal; -struct slName *termList = mdbValSearch(conn, type, MDB_VAL_STD_TRUNCATION, TRUE, FALSE); // Tables not files -count = slCount(termList) + 1; // make room for "Any" -AllocArray(retVal, count); -retVal[0] = cloneString(ANYLABEL); -for(i = 1; termList != NULL;termList = termList->next, i++) - { - retVal[i] = cloneString(termList->name); - } -*terms = retVal; +int ix = 0, count = 0; +char **labels; +char **values; +struct slPair *pairs = mdbValLabelSearch(conn, type, MDB_VAL_STD_TRUNCATION, TRUE, FALSE); // Tables not files +count = slCount(pairs) + 1; // make room for "Any" +AllocArray(labels, count); +AllocArray(values, count); +labels[ix] = cloneString(ANYLABEL); +values[ix] = cloneString(ANYLABEL); +struct slPair *pair = NULL; +while((pair = slPopHead(&pairs)) != NULL) + { + ix++; + labels[ix] = pair->name; + values[ix] = pair->val; + freeMem(pair); + } +*pLabels = labels; +*pTerms = values; return count; } @@ -534,7 +542,7 @@ hPrintf("ENCODE terms", cols,COLOR_DARKGREY); for(i = 0; i < numMetadataSelects; i++) { - char **terms; + char **terms = NULL, **labels = NULL; char buf[256]; int len; @@ -554,9 +562,9 @@ safef(buf, sizeof(buf), "%s%i", METADATA_NAME_PREFIX, i + 1); cgiDropDownWithTextValsAndExtra(buf, mdbVarLabels, mdbVars,count,mdbVar[i],"class='mdbVar' onchange=findTracksMdbVarChanged(this)"); hPrintf("is\n"); - len = getTermArray(conn, &terms, mdbVar[i]); + len = getTermArray(conn, &labels, &terms, mdbVar[i]); safef(buf, sizeof(buf), "%s%i", METADATA_VALUE_PREFIX, i + 1); - cgiMakeDropListFull(buf, terms, terms, len, mdbVal[i], "class='mdbVal' style='min-width:200px;' onchange='findTracksSearchButtonsEnable(true)'"); + cgiMakeDropListFull(buf, labels, terms, len, mdbVal[i], "class='mdbVal' style='min-width:200px;' onchange='findTracksSearchButtonsEnable(true)'"); if (!simpleSearch && mdbVal[i]) searchTermsExist = TRUE; hPrintf("help\n", i + 1); @@ -864,6 +872,8 @@ if(!doSearch) { hPrintf("

Recently Done

\n"); } hPrintf("