",tdb->shortLabel);
// Get the hash of mdb and cv term types
struct hash *cvTermTypes = (struct hash *)cvTermTypeHash();
@@ -194,31 +180,31 @@
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,"
");
}
else
{
if (cvTermTypes && differentString(mdbVar->var,MDB_VAR_TABLENAME)) // Don't bother with 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))
{
@@ -235,50 +221,44 @@
dyStringPrintf(dyTable,"
");
//mdbObjsFree(&mdbObj); // spill some memory
return dyStringCannibalize(&dyTable);
}
boolean compositeMetadataToggle(char *db,struct trackDb *tdb,char *title,
- boolean embeddedInText,boolean showLongLabel, struct hash *trackHash)
+ boolean embeddedInText,boolean showLongLabel)
/* If metadata from metaTbl exists, create a link that will allow toggling it's display */
{
const struct mdbObj *safeObj = metadataForTable(db,tdb,NULL);
if(safeObj == NULL || safeObj->vars == NULL)
return FALSE;
printf("%s%s",
(embeddedInText?" ":"
"),tdb->track,tdb->track, showLongLabel?"true":"false", (title?title:""));
-if (!sameString(tdb->table, tdb->track) && trackHash != NULL) // If trackHash is needed, then can't fill this in with ajax
- {
- printf("
%s
",tdb->track,
- metadataAsHtmlTable(db,tdb,showLongLabel,TRUE,trackHash) );
- }
-else
printf("",tdb->track);
return TRUE;
}
-void extraUiLinks(char *db,struct trackDb *tdb, struct hash *trackHash)
+void extraUiLinks(char *db,struct trackDb *tdb)
/* Show downlaods, schema and metadata links where appropriate */
{
boolean schemaLink = (!tdbIsDownloadsOnly(tdb)
&& isCustomTrack(tdb->table) == FALSE)
&& (hTableOrSplitExists(db, tdb->table));
boolean metadataLink = (!tdbIsComposite(tdb)
&& metadataForTable(db, tdb, NULL) != NULL);
boolean downloadLink = (trackDbSetting(tdb, "wgEncode") != NULL && !tdbIsSuperTrack(tdb));
int links = 0;
if (schemaLink)
links++;
if (metadataLink)
links++;
if (downloadLink)
links++;
@@ -295,37 +275,37 @@
printf(", ");
}
if(downloadLink)
{
// special case exception (hg18:NHGRI BiPs are in 7 different dbs but only hg18 has downloads):
char *targetDb = trackDbSetting(tdb, "compareGenomeLinks");
if (targetDb != NULL)
{
targetDb = cloneFirstWordByDelimiter(targetDb,'=');
if (!startsWith("hg",targetDb))
freez(&targetDb);
}
if (targetDb == NULL)
targetDb = cloneString(db);
- makeNamedDownloadsLink(targetDb, tdb, (links > 1 ? "downloads":"Downloads"), trackHash);
+ makeNamedDownloadsLink(targetDb, tdb, (links > 1 ? "downloads":"Downloads"));
freez(&targetDb);
if(metadataLink)
printf(",");
}
if (metadataLink)
- compositeMetadataToggle(db,tdb,"metadata", TRUE, TRUE, trackHash);
+ compositeMetadataToggle(db,tdb,"metadata", TRUE, TRUE);
if(links > 1)
printf("
");
}
char *hUserCookie()
/* Return our cookie name. */
{
return cfgOptionDefault("central.cookie", "hguid");
}
char *hDownloadsServer()
/* get the downloads server from hg.conf or the default */
{
@@ -3826,31 +3806,31 @@
if (excludePast && !isEmpty(date) && dateIsOld(date,"%F"))
freez(&date);
}
return date;
}
#ifndef SUBTRACK_CFG
static void cfgLinkToDependentCfgs(struct cart *cart, struct trackDb *tdb,char *prefix)
/* Link composite or view level controls to all associateled lower level controls */
{
if (!cartVarExists(cart, "ajax") && tdbIsComposite(tdb))
printf("\n",prefix);
}
#endif///ndef SUBTRACK_CFG
-static void compositeUiSubtracks(char *db, struct cart *cart, struct trackDb *parentTdb,struct hash *trackHash)
+static void compositeUiSubtracks(char *db, struct cart *cart, struct trackDb *parentTdb)
/* Display list of subtracks and descriptions with checkboxes to control visibility and possibly other
* nice things including links to schema and metadata and a release date. */
{
struct trackDb *subtrack;
struct dyString *dyHtml = newDyString(SMALLBUF);
//char *colors[2] = { COLOR_BG_DEFAULT,
// COLOR_BG_ALTDEFAULT };
char *colors[2] = { "bgLevel1",
"bgLevel1" };
int colorIx = COLOR_BG_DEFAULT_IX; // Start with non-default allows alternation
#ifndef SUBTRACK_CFG
boolean dependentCfgsNeedBinding = FALSE;
#endif///ndef SUBTRACK_CFG
// Get list of leaf subtracks to work with
@@ -4127,41 +4107,41 @@
safef(buffer, sizeof(buffer), "%s.priority", subtrack->track);
float priority = (float)cartUsualDouble(cart, buffer, subtrack->priority);
printf("", buffer, priority); // keeing track of priority
}
// The checkbox has identifying classes including subCB and the tag for each dimension (e.g. class='subCB GM12878 CTCF Peak')
dyStringClear(dyHtml);
dyStringAppend(dyHtml, "subCB"); // always first
if (membersForAll->dimensions)
{
for(di=dimX;didimMax;di++)
{
if (membersForAll->members[di] && -1 != (ix = stringArrayIx(membersForAll->members[di]->groupTag, membership->subgroups, membership->count)))
dyStringPrintf(dyHtml," %s",membership->membership[ix]);
}
- if (membersForAll->members[dimV] && -1 != (ix = stringArrayIx(membersForAll->members[dimV]->groupTag, membership->subgroups, membership->count)))
- dyStringPrintf(dyHtml, " %s",membership->membership[ix]); // Saved view for last
}
else if (membersForAll->abcCount) // "dimensions" don't exist but there may be subgroups anyway
{
for(di=dimA;didimMax;di++)
{
if (membersForAll->members[di] && -1 != (ix = stringArrayIx(membersForAll->members[di]->groupTag, membership->subgroups, membership->count)))
dyStringPrintf(dyHtml," %s",membership->membership[ix]);
}
}
+ if (membersForAll->members[dimV] && -1 != (ix = stringArrayIx(membersForAll->members[dimV]->groupTag, membership->subgroups, membership->count)))
+ dyStringPrintf(dyHtml, " %s",membership->membership[ix]); // Saved view for last
// And finally the checkBox is made!
safef(buffer, sizeof(buffer), "%s_sel", subtrack->track);
#ifdef SUBTRACK_CFG
if (!enabledCB)
{
dyStringAppend(dyHtml, " disabled");
cgiMakeCheckBoxFourWay(buffer,checkedCB,enabledCB,id,dyStringContents(dyHtml),"onclick='matSubCbClick(this);' style='cursor:pointer' title='view is hidden'");
}
else
#endif///def SUBTRACK_CFG
cgiMakeCheckBoxFourWay(buffer,checkedCB,enabledCB,id,dyStringContents(dyHtml),"onclick='matSubCbClick(this);' style='cursor:pointer'");
if (useDragAndDrop)
printf(" ");
@@ -4231,31 +4211,31 @@
printf ("