addc18fca8d5b05507a3c3b9e22d08bd35280434 kate Thu Feb 12 11:55:29 2015 -0800 Renames to fix poor name choice (meta->vocab). refs #14353 diff --git src/hg/lib/hui.c src/hg/lib/hui.c index 7d00446..f25488a 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -4176,102 +4176,102 @@ // Count of subtracks is filled in by javascript. if (subCount > 5) printf("<span class='subCBcount'></span>\n"); // Restriction policy needs a link if (restrictions && sortOrder != NULL) printf("</TD><TH><A HREF='%s' TARGET=BLANK style='font-size:.9em;'>Restriction Policy</A>", ENCODE_DATA_RELEASE_POLICY); printf("</TD></TR></TFOOT>\n"); } } /********************/ -/* Basic metadata for subgroups and input fields */ +/* Basic info for a controlled vocabulary term */ -struct metaBasic { - struct metaBasic *next; +struct vocabBasic { + struct vocabBasic *next; char *term; char *description; char *url; }; -char *metaVocabLink(struct hash *metaFieldHash, char *term, char *title) +char *vocabLink(struct hash *vocabFieldHash, char *term, char *title) /* Make an anchor with mouseover containing description and link if present */ { -struct metaBasic *meta = hashFindVal(metaFieldHash, term); -if (meta == NULL) +struct vocabBasic *vocab = hashFindVal(vocabFieldHash, term); +if (vocab == NULL) return NULL; struct dyString *ds = dyStringNew(0); -if (meta->url == NULL || strlen(meta->url) == 0) +if (vocab->url == NULL || strlen(vocab->url) == 0) dyStringPrintf(ds, "<A title='%s' style='cursor: pointer;'>%s</A>", - meta->description, term); + vocab->description, term); else dyStringPrintf(ds, "<A target='_blank' class='cv' title='%s' href='%s'>%s</A>\n", - meta->description, meta->url, term); + vocab->description, vocab->url, term); return dyStringCannibalize(&ds); } -struct hash *metaBasicFromSetting(struct trackDb *parentTdb, struct cart *cart, char *setting) -/* Get description and URL for all metaTables. Returns a hash of hashes */ +struct hash *vocabBasicFromSetting(struct trackDb *parentTdb, struct cart *cart, char *setting) +/* Get description and URL for all vocabTables. Returns a hash of hashes */ { if (differentString(setting, "subGroupMetaTables") && differentString(setting, "inputFieldMetaTables")) return NULL; char *spec = trackDbSetting(parentTdb, setting); if (!spec) return NULL; -struct slPair *metaTables = slPairFromString(spec); -struct slPair *metaTable = NULL; +struct slPair *vocabTables = slPairFromString(spec); +struct slPair *vocabTable = NULL; struct hash *tableHash = hashNew(0); struct sqlResult *sr; char **row; char query[256]; char *database = cartString(cart, "db"); -for (metaTable = metaTables; metaTable != NULL; metaTable = metaTable->next) +for (vocabTable = vocabTables; vocabTable != NULL; vocabTable = vocabTable->next) { char *db = database; - char *tableSpec = (char *)metaTable->val; + char *tableSpec = (char *)vocabTable->val; char *tableName = chopPrefix(tableSpec); if (differentString(tableName, tableSpec)) { chopSuffix(tableSpec); db = tableSpec; } struct sqlConnection *conn = hAllocConn(db); boolean hasUrl = FALSE; struct hash *subgroupHash = hashNew(0); - hashAdd(tableHash, metaTable->name, subgroupHash); + hashAdd(tableHash, vocabTable->name, subgroupHash); if (hHasField(db, tableName, "url")) { sqlSafef(query, sizeof(query), "select term, description, url from %s", tableName); hasUrl = TRUE; } else sqlSafef(query, sizeof(query), "select term, description from %s", tableName); sr = sqlGetResult(conn, query); while ((row = sqlNextRow(sr)) != NULL) { - struct metaBasic *meta = NULL; - AllocVar(meta); - meta->term = cloneString(row[0]); - meta->description = cloneString(row[1]); + struct vocabBasic *vocab = NULL; + AllocVar(vocab); + vocab->term = cloneString(row[0]); + vocab->description = cloneString(row[1]); if (hasUrl) - meta->url = cloneString(row[2]); - hashAdd(subgroupHash, meta->term, meta); + vocab->url = cloneString(row[2]); + hashAdd(subgroupHash, vocab->term, vocab); } sqlFreeResult(&sr); hFreeConn(&conn); } return tableHash; } static void printSubtrackTableBody(struct trackDb *parentTdb, struct slRef *subtrackRefList, struct subtrackConfigSettings *settings, struct cart *cart) /* Print list of subtracks */ { sortOrder_t *sortOrder = settings->sortOrder; boolean useDragAndDrop = settings->useDragAndDrop; boolean restrictions = settings->restrictions; struct dyString *dyHtml = newDyString(SMALLBUF); @@ -4285,31 +4285,31 @@ { // preserves user's prev sort/drags preSorted = tdbRefSortPrioritiesFromCart(cart, &subtrackRefList); printf("<TBODY class='%saltColors'>\n", (sortOrder != NULL ? "sortable " : "") ); } else { slSort(&subtrackRefList, trackDbRefCmp); // straight from trackDb.ra preSorted = TRUE; puts("<TBODY>"); } // Finally the big "for loop" to list each subtrack as a table row. printf("\n<!-- ----- subtracks list ----- -->\n"); membersForAll_t* membersForAll = membersForAllSubGroupsGet(parentTdb,NULL); -struct hash *subgroupMetaHash = metaBasicFromSetting(parentTdb, cart, "subGroupMetaTables"); +struct hash *subgroupMetaHash = vocabBasicFromSetting(parentTdb, cart, "subGroupMetaTables"); struct slRef *subtrackRef; /* Color handling ?? */ //char *colors[2] = { COLOR_BG_DEFAULT, // COLOR_BG_ALTDEFAULT }; char *colors[2] = { "bgLevel1", "bgLevel1" }; int colorIx = settings->bgColorIx; for (subtrackRef = subtrackRefList; subtrackRef != NULL; subtrackRef = subtrackRef->next) { struct trackDb *subtrack = subtrackRef->val; int ix; // Determine whether subtrack is checked, visible, configurable, has group membership, etc. @@ -4471,31 +4471,31 @@ char *title = membership->titles[ix]; char *titleRoot=NULL; if (cvTermIsEmpty(col, title)) titleRoot = cloneString(" "); else titleRoot = labelRoot(title, NULL); // Each sortable column requires hidden goop (in the "abbr" field currently) // which is the actual sort on value printf("<TD id='%s_%s' abbr='%s' align='left'>", subtrack->track, col, term); printf(" "); char *link = NULL; if (subgroupMetaHash) { struct hash *colHash = hashFindVal(subgroupMetaHash, col); if (colHash) - link = metaVocabLink(colHash, term, titleRoot); + link = vocabLink(colHash, term, titleRoot); } printf("%s", link ? link : titleRoot); puts("</TD>"); freeMem(titleRoot); } else if (sameString(col, SUBTRACK_COLOR_SUBGROUP)) { char *hue = subtrackColorToCompare(subtrack); printf("<TD id='%s_%s' abbr='%s' bgcolor='#%02X%02X%02X'>" " </TD>", subtrack->track, col, hue, subtrack->colorR, subtrack->colorG, subtrack->colorB); } } }