dd297edc013940b391151471d86ee5a17cd39be6 tdreszer Tue Apr 19 14:45:46 2011 -0700 Adding CGI support for mdb fimeName being a comma delimited list. Also includes support for md5sum as comma delimited list. diff --git src/hg/lib/hui.c src/hg/lib/hui.c index eba3b0b..015322f 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -173,42 +173,55 @@ const struct mdbObj *safeObj = metadataForTable(db,tdb,NULL); if (safeObj == NULL || safeObj->vars == NULL) return NULL; //struct dyString *dyTable = dyStringCreate("<table id='mdb_%s'>",tdb->table); struct dyString *dyTable = dyStringCreate("<table style='display:inline-table;'>"); if(showLongLabel) dyStringPrintf(dyTable,"<tr valign='bottom'><td colspan=2 nowrap>%s</td></tr>",tdb->longLabel); if(showShortLabel) dyStringPrintf(dyTable,"<tr valign='bottom'><td align='right' nowrap><i>shortLabel:</i></td><td nowrap>%s</td></tr>",tdb->shortLabel); // Get the hash of mdb and cv term types struct hash *cvTermTypes = (struct hash *)cvTermTypeHash(); struct mdbObj *mdbObj = mdbObjClone(safeObj); // Important if we are going to remove vars! -mdbObjRemoveVars(mdbObj,MDB_OBJ_TYPE_COMPOSITE " " MDB_VAR_PROJECT " " MDB_OBJ_TYPE); // Don't bother showing these (NOTE: composite,objType should be added to cv.ra typeOfTerms as hidden) +mdbObjRemoveVars(mdbObj,MDB_OBJ_TYPE_COMPOSITE " " MDB_VAR_PROJECT " " MDB_OBJ_TYPE " " MDB_VAR_MD5SUM); // Don't bother showing these (NOTE: composite,objType should be added to cv.ra typeOfTerms as hidden) mdbObjRemoveHiddenVars(mdbObj); mdbObjReorderByCv(mdbObj,FALSE);// Use cv defined order for visible vars struct mdbVar *mdbVar; for (mdbVar=mdbObj->vars;mdbVar!=NULL;mdbVar=mdbVar->next) { if ((sameString(mdbVar->var,MDB_VAR_FILENAME) || sameString(mdbVar->var,MDB_VAR_FILEINDEX) ) && trackDbSettingClosestToHome(tdb,MDB_VAL_ENCODE_PROJECT) != NULL) { - dyStringPrintf(dyTable,"<tr valign='bottom'><td align='right' nowrap><i>%s:</i></td><td nowrap>",mdbVar->var); - + dyStringPrintf(dyTable,"<tr valign='top'><td align='right' nowrap><i>%s:</i></td><td nowrap>",mdbVar->var); +//#define NO_FILENAME_LISTS +#ifdef NO_FILENAME_LISTS dyStringAppend(dyTable,htmlStringForDownloadsLink(db, tdb, mdbVar->val, TRUE, trackHash)); +#else///ifndef NO_FILENAME_LISTS + + struct slName *fileSet = slNameListFromComma(mdbVar->val); + while (fileSet != NULL) + { + struct slName *file = slPopHead(&fileSet); + dyStringAppend(dyTable,htmlStringForDownloadsLink(db, tdb, file->name, TRUE, trackHash)); + if (fileSet != NULL) + dyStringAppend(dyTable,"<BR>"); + slNameFree(&file); + } +#endif///ndef NO_FILENAME_LISTS dyStringAppend(dyTable,"</td></tr>"); } else { if (cvTermTypes && differentString(mdbVar->var,MDB_VAR_TABLENAME)) // Don't bother with tableName { struct hash *cvTerm = hashFindVal(cvTermTypes,mdbVar->var); if (cvTerm != NULL) { if(SETTING_NOT_ON(hashFindVal(cvTerm,CV_TOT_HIDDEN))) // NULL is not on { char *label=hashFindVal(cvTerm,CV_LABEL); if (label == NULL) label = mdbVar->var; char *linkOfType = controlledVocabLink(NULL,CV_TYPE,mdbVar->var,label,label,NULL);