15d99f8bb2387c74714e4243f52715faf9186c13
tdreszer
  Mon Sep 12 12:48:26 2011 -0700
Use cv labels for vals in metadata drop down.
diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index f47b9b7..cf91d3c 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -216,43 +216,45 @@
         {
         if (cvTermTypes && differentString(mdbVar->var,MDB_VAR_TABLENAME)) // Don't bother with tableName
             {
             struct hash *cvTerm = hashFindVal(cvTermTypes,mdbVar->var);
             if (cvTerm != NULL)
                 {
                 if(!cvTermIsHidden(mdbVar->var))
                     {
                     char *label=hashFindVal(cvTerm,CV_LABEL);
                     if (label == NULL)
                         label = mdbVar->var;
                     char *linkOfType = controlledVocabLink(NULL,CV_TYPE,mdbVar->var,label,label,NULL);
                     char *cvDefined=hashFindVal(cvTerm,CV_TOT_CV_DEFINED);
                     if (cvDefined != NULL && !SETTING_IS_OFF(cvDefined)) // assume setting is ON
                         {
-                        char *linkOfTerm = controlledVocabLink(NULL,CV_TERM,mdbVar->val,mdbVar->val,mdbVar->val,NULL);
+                        label = NULL;
+                        if (SETTING_IS_ON(cvDefined))
+                            {
+                            struct hash *cvVal = (struct hash *)cvOneTermHash(mdbVar->var,mdbVar->val);
+                            if (cvVal != NULL)
+                                label=hashFindVal(cvVal,CV_LABEL);
+                            }
+                        if (label == NULL)
+                            label = mdbVar->val;
+                        char *linkOfTerm = controlledVocabLink(NULL,CV_TERM,mdbVar->val,label,label,NULL);
                         dyStringPrintf(dyTable,"<tr valign='bottom'><td align='right' nowrap><i>%s:</i></td><td nowrap>%s</td></tr>",linkOfType,linkOfTerm);
                         freeMem(linkOfTerm);
                         }
                     else
                         dyStringPrintf(dyTable,"<tr valign='bottom'><td align='right' nowrap><i>%s:</i></td><td nowrap>%s</td></tr>",linkOfType,mdbVar->val);
-                        //{  // NOTE: Could just have a tool tip for these.
-                        //char *descr=cgiEncode(hashMustFindVal(cvTerm,"description"));
-                        //label = cgiEncode(label);
-                        //dyStringPrintf(dyTable,"<tr valign='bottom'><td align='right'><i title='%s'>%s:</i></td><td nowrap>%s</td></tr>",descr,label,mdbVar->val);
-                        //freeMem(descr);
-                        //freeMem(label);
-                        //}
                     freeMem(linkOfType);
                     continue;
                     }
                 }
             }
         dyStringPrintf(dyTable,"<tr valign='bottom'><td align='right' nowrap><i>%s:</i></td><td nowrap>%s</td></tr>",mdbVar->var,mdbVar->val);
         }
     }
 dyStringAppend(dyTable,"</table>");
 //mdbObjsFree(&mdbObj); // spill some memory
 return dyStringCannibalize(&dyTable);
 }
 
 boolean compositeMetadataToggle(char *db,struct trackDb *tdb,char *title,
         boolean embeddedInText,boolean showLongLabel, struct hash *trackHash)