a1aab1e4c27cb4cf0b03793b7088be6a1d7de760
kate
Fri Jan 9 15:22:44 2015 -0800
Suppress annoying 'Top' link at start of subtrack list when matrix not present
diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index d9a1004..0fd4066 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -4425,30 +4425,38 @@
printf("\n
%s ", dateDisplay);
}
}
// End of row and free ourselves of this subtrack
puts(" | \n");
checkBoxIdFree(&id);
}
// End of the table
puts("");
dyStringFree(&dyHtml)
membersForAllSubGroupsFree(parentTdb,&membersForAll);
}
+static boolean membersHaveMatrix(membersForAll_t *membersForAll)
+/* Check for matrix */
+{
+if (membersForAll->members[dimX] == NULL && membersForAll->members[dimY] == NULL)
+ return false;
+return true;
+}
+
static void printSubtrackTable(struct trackDb *parentTdb, struct slRef *subtrackRefList,
struct subtrackConfigSettings *settings, struct cart *cart)
/* Print table of subtracks */
{
// Print table tag
printf("\nsortOrder != NULL)
dyStringPrintf(dyHtml, "sortable");
if (settings->useDragAndDrop)
{
if (dyStringLen(dyHtml) > 0)
dyStringAppendC(dyHtml,' ');
dyStringPrintf(dyHtml, "tableWithDragAndDrop");
}
@@ -4513,35 +4521,39 @@
char javascript[JBUFSIZE];
safef(javascript, sizeof(javascript),
"class='allOrOnly' onclick='showOrHideSelectedSubtracks(true);'");
if (subCount > LARGE_COMPOSITE_CUTOFF)
safef(buffer,SMALLBUF,"%s.displaySubtracks",parentTdb->track);
else
safecpy(buffer,SMALLBUF,"displaySubtracks");
cgiMakeOnClickRadioButton(buffer, "selected", !displayAll,javascript);
puts("only selected/visible ");
safef(javascript, sizeof(javascript),
"class='allOrOnly' onclick='showOrHideSelectedSubtracks(false);'");
cgiMakeOnClickRadioButton(buffer, "all", displayAll,javascript);
printf("all");
if (slCount(subtrackRefList) > 5)
printf(" ()");
+ if (membersHaveMatrix(membersForAll))
makeTopLink(parentTdb);
printf("
");
}
else
+ {
+ if (membersHaveMatrix(membersForAll))
makeTopLink(parentTdb);
+ }
// Get info for subtrack list
struct subtrackConfigSettings *subtrackConfig = NULL;
AllocVar(subtrackConfig);
// Determine whether there is a restricted until date column
subtrackConfig->restrictions = FALSE;
for (subtrackRef = subtrackRefList; subtrackRef != NULL; subtrackRef = subtrackRef->next)
{
subtrack = subtrackRef->val;
(void)metadataForTable(db,subtrack,NULL);
if (NULL != metadataFindValue(subtrack,"dateUnrestricted"))
{
subtrackConfig->restrictions = TRUE;
break;
@@ -6739,31 +6751,31 @@
{
char *link = controlledVocabLink(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 "%c"
+#define BUTTON_MAT "%c"
#else///ifndef BUTTONS_BY_CSS
#define PM_BUTTON_UC "
"
#endif///def BUTTONS_BY_CSS
#define MATRIX_RIGHT_BUTTONS_AFTER 8
#define MATRIX_BOTTOM_BUTTONS_AFTER 20
static void buttonsForAll()
{
#ifdef BUTTONS_BY_CSS
printf(BUTTON_MAT,"true", "", "", "", '+');
printf(BUTTON_MAT,"false","", "", "", '-');
#else///ifndef BUTTONS_BY_CSS