29ffc987c852f9978f2442575d1f292aa9cd43aa tdreszer Thu Dec 16 08:59:55 2010 -0800 Had to add back in the 'windowSize' table or else things like top light blue bar start breaking diff --git src/hg/lib/hui.c src/hg/lib/hui.c index ea12491..e8e880a 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -3793,73 +3793,75 @@ // Look for dividers, heirarchy, dimensions, sort and dragAndDrop! char **lastDivide = NULL; dividers_t *dividers = dividersSettingGet(parentTdb); if (dividers) lastDivide = needMem(sizeof(char*)*dividers->count); hierarchy_t *hierarchy = hierarchySettingGet(parentTdb); membersForAll_t* membersForAll = membersForAllSubGroupsGet(parentTdb,NULL); int dimCount=0,di; for(di=0;didimMax;di++) { if (membersForAll->members[di]) dimCount++; } sortOrder_t* sortOrder = sortOrderGet(cart,parentTdb); boolean preSorted = FALSE; boolean useDragAndDrop = sameOk("subTracks",trackDbSetting(parentTdb, "dragAndDrop")); +// Table wraps around entire list so that "Top" link can float to the correct place. +printf("
"); +printf(""); +makeTopLink(parentTdb); + // Now we can start in on the table of subtracks It may be sortable and/or dragAndDroppable printf("\n 0) dyStringAppendC(dyHtml,' '); dyStringPrintf(dyHtml, "tableWithDragAndDrop"); } if (dyStringLen(dyHtml) > 0) { printf(" class='subtracks %s'",dyStringContents(dyHtml)); colorIx = COLOR_BG_ALTDEFAULT_IX; } if (sortOrder != NULL) puts(">"); else puts(">"); // First table row contains the display "selected/visible" or "all" radio buttons boolean displayAll = sameString(cartUsualString(cart, "displaySubtracks", "all"), "all"); boolean doColorPatch = trackDbSettingOn(parentTdb, "showSubtrackColorOnUi"); int colspan = 3; if (sortOrder != NULL) - colspan = sortOrder->count+4; + colspan = sortOrder->count+2; if (doColorPatch) colspan += 1; printf("",useDragAndDrop?" id='noDrag' class='nodrop nodrag'":""); -printf(""); // Add column headers which are sort button links if (sortOrder != NULL) { puts(""); printf("\n"); printf("\n", sortOrder->htmlId, sortOrder->sortOrder); // keeing track of sortOrder // Columns in tdb order (unchanging), sort in cart order (changed by user action) int sIx=0; for(sIx=0;sIxcount;sIx++) { printf(""); break; // Don't need more than one } } puts(""); // The end of the header section. // The subtracks need to be sorted by priority but only sortable and dragable will have non-default (cart) priorities to sort on if (sortOrder != NULL || useDragAndDrop) { preSorted = tdbRefSortPrioritiesFromCart(cart, &subtrackRefList); // preserves user's prev sort/drags - puts(""); + printf("\n",(sortOrder != NULL ? "sortable " : "") ); } else { slSort(&subtrackRefList, trackDbRefCmp); // straight from trackDb.ra preSorted = TRUE; puts(""); } // Finally the big "for loop" to list each subtrack as a table row. for (subtrackRef = subtrackRefList; subtrackRef != NULL; subtrackRef = subtrackRef->next) { subtrack = subtrackRef->val; int ix; // Determine whether subtrack is checked, visible, configurable, has group membership, etc.
", colspan); -printf(""); -printf("List subtracks: "); +printf("List subtracks: ", colspan); char javascript[JBUFSIZE]; safef(javascript, sizeof(javascript), "onclick=\"showOrHideSelectedSubtracks(true);\""); cgiMakeOnClickRadioButton("displaySubtracks", "selected", !displayAll,javascript); puts("only selected/visible   "); safef(javascript, sizeof(javascript), "onclick=\"showOrHideSelectedSubtracks(false);\""); cgiMakeOnClickRadioButton("displaySubtracks", "all", displayAll,javascript); printf("all"); if (slCount(subtrackRefList) > 5) printf("    ()"); -makeTopLink(parentTdb); // "Top" link floats to right side of table puts(" 
 %s", sortOrder->column[sIx],(sortOrder->forward[sIx]?"":" sortRev"),sortOrder->order[sIx],sortOrder->title[sIx]); printf("%s",(sortOrder->forward[sIx]?"↓":"↑")); @@ -3879,31 +3881,31 @@ (void)metadataForTable(db,subtrack,NULL); if (NULL != metadataFindValue(subtrack,"dateUnrestricted")) { printf(" "); printf("Restricted Until", ENCODE_DATA_RELEASE_POLICY); puts("