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<BR>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("<TD%s nowrap style='color: #BBBBBB;'%s>%s</td>",align,class,field); else + { + // use label + if (!isFieldEmpty && cvTermIsCvDefined(sortOrder->column[ix])) + field = (char *)cvLabel(sortOrder->column[ix],field); printf("<TD%s nowrap%s>%s</td>",align,class,isFieldEmpty?" ":field); + } if (!sameString("fileType",sortOrder->column[ix])) mdbObjRemoveVars(oneFile->mdb,sortOrder->column[ix]); // Remove this from mdb now so that it isn't displayed in "extras' } } } #ifndef INCLUDE_FILENAMES else #endif///ndef INCLUDE_FILENAMES { // fileName printf("<TD nowrap>%s",oneFile->fileName); //// FIXME: " The "..." encapsulation could be rebuilt so it could be called here //printf(" <A HREF='#a_meta_%s' onclick='return metadataShowHide(\"%s\",true,true);' title='Show metadata details...'>...</A>", // oneFile->mdb->obj,oneFile->mdb->obj); //printf("<DIV id='div_%s_meta' style='display:none;'></div></td>",oneFile->mdb->obj); }