68556d6313c84572edde3f854fd0ee2592cee9b7
tdreszer
Mon Sep 12 14:05:12 2011 -0700
Further work to have cv label appear instead of term in file search, fileUi and metadata dropdown
diff --git src/hg/lib/fileUi.c src/hg/lib/fileUi.c
index d90a00b..3b8ecd9 100644
--- src/hg/lib/fileUi.c
+++ src/hg/lib/fileUi.c
@@ -172,31 +172,31 @@
{
if (mdbObjs != NULL)
{
struct dyString *dySortFields = dyStringNew(512);
struct mdbObj *commonVars = mdbObjsCommonVars(mdbObjs);
// common vars are already in cv defined order, searchable is also sortable
struct mdbVar *var = commonVars->vars;
for( ;var != NULL; var = var->next)
{
if (differentWord(var->var,MDB_VAR_LAB_VERSION) // Exclude certain vars
&& differentWord(var->var,MDB_VAR_SOFTWARE_VERSION)
&& cvSearchMethod(var->var) != cvNotSearchable) // searchable is also sortable
{
if (mdbObjsHasCommonVar(mdbObjs, var->var,TRUE)) // Don't bother if all the vals are the same (missing okay)
continue;
- dyStringPrintf(dySortFields,"%s=%s ",var->var,strSwapChar(cloneString(cvLabel(var->var)),' ','_'));
+ dyStringPrintf(dySortFields,"%s=%s ",var->var,strSwapChar(cloneString(cvLabel(NULL,var->var)),' ','_'));
}
}
if (dyStringLen(dySortFields))
{
dyStringAppend(dySortFields,"fileSize=Size fileType=File_Type");
setting = dyStringCannibalize(&dySortFields);
}
else
dyStringFree(&dySortFields);
mdbObjsFree(&commonVars);
}
if(setting == NULL) // Must be in trackDb or not a sortable list of files
{
#define FILE_SORT_ORDER_DEFAULT "cell=Cell_Line lab=Lab view=View replicate=Rep fileSize=Size fileType=File_Type dateSubmitted=Submitted dateUnrestricted=RESTRICTED
Until"
setting = FILE_SORT_ORDER_DEFAULT;
@@ -385,31 +385,31 @@
{
char *var = sortOrder->column[sIx];
enum cvSearchable searchBy = cvSearchMethod(var);
if (searchBy != cvSearchBySingleSelect && searchBy != cvSearchByMultiSelect)
continue; // Only single selects and multi-select make good candidates for filtering
// get all vals for var, then convert to tag/label pairs for filterBys
struct slName *vals = mdbObjsFindAllVals(mdbObjs, var);
struct slPair *tagLabelPairs = NULL;
while(vals != NULL)
{
struct slName *term = slPopHead(&vals);
char *tag = (char *)cvTag(var,term->name);
if (tag == NULL)
tag = term->name;
- slPairAdd(&tagLabelPairs,tag,cloneString((char *)cvLabel(term->name)));
+ slPairAdd(&tagLabelPairs,tag,cloneString((char *)cvLabel(var,term->name)));
slNameFree(&term);
}
// If there is more than one val for this var then create filterBy box for it
if (slCount(tagLabelPairs) > 1)
{
// should have a list sorted on the label
enum cvDataType eCvDataType = cvDataType(var);
if (eCvDataType == cvInteger)
slPairValAtoiSort(&tagLabelPairs);
else
slPairValSortCase(&tagLabelPairs);
char extraClasses[256];
safef(extraClasses,sizeof extraClasses,"filterTable %s",var);
#ifdef NEW_JQUERY
@@ -613,31 +613,36 @@
if (isFieldEmpty)
cleanClass = "None";
else
{
cleanClass = (char *)cvTag(sortOrder->column[ix],field); // class should be tag
if (cleanClass == NULL)
cleanClass = field;
}
safef(class,sizeof class," class='%s %s'",sortOrder->column[ix],cleanClass);
}
}
if (sameString("dateUnrestricted",sortOrder->column[ix]) && field && dateIsOld(field,"%F"))
printf("