7725ca2289ef5444dee8e848c95507ef588e89bf kate Thu Feb 12 13:22:32 2015 -0800 Renames to distinguish ENCODE cv from non-ENCODE table-based vocabularies. refs #14353 diff --git src/hg/lib/hui.c src/hg/lib/hui.c index 28ba923..1c40f2c 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -151,31 +151,31 @@ if (!trackHubDatabase(db) && hTableOrSplitExists(db, tdb->table)) { char *tbOff = trackDbSetting(tdb, "tableBrowser"); if (isNotEmpty(tbOff) && sameString(nextWord(&tbOff), "off")) return FALSE; char *hint = " title='Open table schema in new window'"; if (label == NULL) label = " View table schema"; struct trackDb *topLevel = trackDbTopLevelSelfOrParent(tdb); printf(SCHEMA_LINKED, db, topLevel->grp, topLevel->track, tdb->table, hint, label); return TRUE; } return FALSE; } -char *controlledVocabLink(char *file,char *term,char *value,char *title, char *label,char *suffix) +char *wgEncodeVocabLink(char *file,char *term,char *value,char *title, char *label,char *suffix) // returns allocated string of HTML link to controlled vocabulary term { #define VOCAB_LINK_WITH_FILE "<A HREF='hgEncodeVocab?ra=%s&%s=\"%s\"' title='%s details' " \ "class='cv' TARGET=ucscVocab>%s</A>" #define VOCAB_LINK "<A HREF='hgEncodeVocab?%s=\"%s\"' title='%s details' class='cv' " \ "TARGET=ucscVocab>%s</A>" struct dyString *dyLink = NULL; char *encTerm = cgiEncode(term); char *encValue = cgiEncode(value); if (file != NULL) { char *encFile = cgiEncode(file); dyLink = dyStringCreate(VOCAB_LINK_WITH_FILE,encFile,encTerm,encValue,title,label); freeMem(encFile); } @@ -231,36 +231,36 @@ dyStringAppend(dyTable,"<BR>"); slNameFree(&file); } dyStringAppend(dyTable,"</td></tr>"); } else { // Don't bother with tableName if (cvTermTypes && differentString(mdbVar->var,MDB_VAR_TABLENAME)) { struct hash *cvTerm = hashFindVal(cvTermTypes,mdbVar->var); if (cvTerm != NULL) // even if cvTerm isn't used, { // it proves that it exists and a link is desirable if (!cvTermIsHidden(mdbVar->var)) { char *label = (char *)cvLabel(NULL,mdbVar->var); - char *linkOfType = controlledVocabLink(NULL,CV_TYPE,mdbVar->var,label, + char *linkOfType = wgEncodeVocabLink(NULL,CV_TYPE,mdbVar->var,label, label,NULL); if (cvTermIsCvDefined(mdbVar->var)) { label = (char *)cvLabel(mdbVar->var,mdbVar->val); - char *linkOfTerm = controlledVocabLink(NULL,CV_TERM,mdbVar->val,label, + char *linkOfTerm = wgEncodeVocabLink(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); freeMem(linkOfType); continue; } } } @@ -6868,44 +6868,44 @@ return cloneString(label); // No wrapping! char *words[15]; int count,ix; boolean found=FALSE; if ((count = chopByWhite(cloneString(vocab), words,15)) <= 1) return cloneString(label); char *suffix=NULL; char *rootLabel = labelRoot(label,&suffix); for (ix=1;ix<count && !found;ix++) { if (sameString(vocabType,words[ix])) // controlledVocabulary setting matches tag { // so all labels are linked - char *link = controlledVocabLink(words[0],"term",words[ix],rootLabel,rootLabel,suffix); + char *link = wgEncodeVocabLink(words[0],"term",words[ix],rootLabel,rootLabel,suffix); return link; } else if (countChars(words[ix],'=') == 1 && childTdb != NULL) // The name of a trackDb setting follows and will be the controlled vocab term { strSwapChar(words[ix],'=',0); if (sameString(vocabType,words[ix])) // tags match, but search for term { char * cvSetting = words[ix] + strlen(words[ix]) + 1; const char * cvTerm = metadataFindValue(childTdb,cvSetting); if (cvTerm != NULL) { - char *link = controlledVocabLink(words[0],(sameWord(cvSetting,"antibody") ? + char *link = wgEncodeVocabLink(words[0],(sameWord(cvSetting,"antibody") ? "target" : "term"), (char *)cvTerm,(char *)cvTerm,rootLabel,suffix); return link; } } } } freeMem(words[0]); freeMem(rootLabel); return cloneString(label); } #ifdef BUTTONS_BY_CSS #define BUTTON_MAT "<span class='pmButton' onclick=\"matSetMatrixCheckBoxes(%s%s%s%s)\">%c</span>" #else///ifndef BUTTONS_BY_CSS