a9405d57ee4b50c467268b539f8b66e408a5bc30 tdreszer Thu Mar 17 16:29:15 2011 -0700 Fixed bug with fileFilter link to hgEncodeVocab. diff --git src/hg/lib/fileUi.c src/hg/lib/fileUi.c index 07130e2..e46c8fe 100644 --- src/hg/lib/fileUi.c +++ src/hg/lib/fileUi.c @@ -357,51 +357,51 @@ sIx++) ; if (sIxcount) // Found in sort Order so leave it in mdbObjs continue; char *val = mdbRemoveCommonVar(mdbObjs, commonTerms[tIx]); // All mdbs have it and have the same val for it. if (val) dyStringPrintf(dyCommon,"%s=%s ",commonTerms[tIx],val); } return dyStringCannibalize(&dyCommon); } return NULL; } #define FILTER_THE_FILES #ifdef FILTER_THE_FILES -static char *labelWithVocabLink(char *var,char *title,struct slPair *valsAndLabels) +static char *labelWithVocabLink(char *var,char *title,struct slPair *valsAndLabels,boolean tagsNotVals) /* If the parentTdb has a controlledVocabulary setting and the vocabType is found, then label will be wrapped with the link to all relevent terms. Return string is cloned. */ { // Determine if the var is cvDefined. If not, simple link boolean cvDefined = FALSE; struct hash *cvTypesOfTerms = (struct hash *)mdbCvTermTypeHash(); if (cvTypesOfTerms != NULL) { struct hash *cvTermDef = hashFindVal(cvTypesOfTerms,var); if (cvTermDef) cvDefined = SETTING_IS_ON(hashFindVal(cvTermDef,"cvDefined")); } struct dyString *dyLink = dyStringNew(256); if (!cvDefined) dyStringPrintf(dyLink,"%s", var,title,title); else { - dyStringPrintf(dyLink,"next) { if (oneVal != valsAndLabels) dyStringAppendC(dyLink,','); dyStringAppend(dyLink,mdbPairVal(oneVal)); } dyStringPrintf(dyLink,"' title='Click for details of each \"%s\"' TARGET=ucscVocab>%s",title,title); } return dyStringCannibalize(&dyLink); } static int filterBoxesForFilesList(char *db,struct mdbObj *mdbObjs,sortOrder_t *sortOrder) { // Will create filterBoxes for each sortOrder field. Returns count of filterBoxes made int count = 0; @@ -431,31 +431,31 @@ slAddHead(&relevantVals,oneVal); } else slPairFreeValsAndList(&oneVal); } if (slCount(relevantVals) > 1) { slReverse(&relevantVals); char extraClasses[256]; safef(extraClasses,sizeof extraClasses,"filterTable %s",var); char *dropDownHtml = cgiMakeMultiSelectDropList(var,relevantVals,NULL,"All",extraClasses,"onchange='filterTable();' onclick='filterTableExclude(this);'"); // Note filterBox has classes: filterBy & {var} if (dropDownHtml) { dyStringPrintf(dyFilters,"\n%s:
\n%s \n", - labelWithVocabLink(var,sortOrder->title[sIx],relevantVals),dropDownHtml); + labelWithVocabLink(var,sortOrder->title[sIx],relevantVals,TRUE),dropDownHtml); // TRUE were sending tags, not values freeMem(dropDownHtml); count++; } } if (slCount(relevantVals) > 0) slPairFreeValsAndList(&relevantVals); } if (count) { webIncludeResourceFile("ui.dropdownchecklist.css"); jsIncludeFile("ui.dropdownchecklist.js",NULL); #define FILTERBY_HELP_LINK "help" printf("Filter files by: (select multiple %sitems - %s)\n\n", (count >= 1 ? "categories and ":""),FILTERBY_HELP_LINK); printf("%s\n",dyStringContents(dyFilters));