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