9f8a4de9d3e78fbb5a084d2ce679681ebefc52e0
tdreszer
Thu Dec 16 09:12:20 2010 -0800
Solved problem of subtrack table occasionally text wrapping to 2 lines per subtrack. Used the power of CSS.
diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index e8e880a..03717a9 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -3850,50 +3850,50 @@
printf("all");
if (slCount(subtrackRefList) > 5)
printf(" ()");
puts("");
// 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("
");
// Determine whether there is a restricted until date column
for (subtrackRef = subtrackRefList; subtrackRef != NULL; subtrackRef = subtrackRef->next)
{
subtrack = subtrackRef->val;
(void)metadataForTable(db,subtrack,NULL);
if (NULL != metadataFindValue(subtrack,"dateUnrestricted"))
{
- printf("
"); // 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
printf("\n",(sortOrder != NULL ? "sortable " : "") );
}
else
{
@@ -3982,100 +3982,100 @@
#define CFG_SUBTRACK_LINK "%s"
#define MAKE_CFG_SUBTRACK_LINK(table,title) printf(CFG_SUBTRACK_LINK, (table),(table),(title))
#endif///ndef SUBTRACK_CFG_POPUP
// If sortable, then there must be a column per sortable dimension
if (sortOrder != NULL)
{
int sIx=0;
for(sIx=0;sIxcount;sIx++)
{
ix = stringArrayIx(sortOrder->column[sIx], membership->subgroups, membership->count); // TODO: Sort needs to expand from subGroups to labels as well
if (ix >= 0)
{
char *titleRoot=labelRoot(membership->titles[ix],NULL);
// Each sortable column requires hidden goop (in the "abbr" field currently) which is the actual sort on value
- printf ("
",subtrack->track,sortOrder->column[sIx],membership->membership[ix]);
#ifdef SUBTRACK_CFG_POPUP
dyStringPrintf(dyLabel,"%s ",titleRoot);
if (cType != cfgNone && sameString("view",sortOrder->column[sIx])) // configure link is on view currenntly TODO: make a wrench next to check box/view
{
dyStringAppend(dyLabel,"Configuration");
MAKE_CFG_SUBTRACK_LINK(subtrack->track,dyStringContents(dyLabel),titleRoot);
}
#else///ifndef SUBTRACK_CFG_POPUP
if (cType != cfgNone && sameString("view",sortOrder->column[sIx]))
MAKE_CFG_SUBTRACK_LINK(subtrack->track,titleRoot); // FIXME: Currently configurable under sort only supported when multiview
#endif///ndef SUBTRACK_CFG_POPUP
else
printf("%s",titleRoot);
puts ("
");
freeMem(titleRoot);
}
}
}
else // Non-sortable tables do not have sort by columns but will display a short label (which may be a configurable link)
{
- printf ("
");
+ printf ("
");
indentIfNeeded(hierarchy,membership);
#ifdef SUBTRACK_CFG_POPUP
if (cType != cfgNone && cType != cfgWigMaf) // FIXME: wigMaf restriction is temporary until configureByPopup off is set
MAKE_CFG_SUBTRACK_LINK(subtrack->track,subtrack->shortLabel,subtrack->shortLabel);
#else///ifndef SUBTRACK_CFG_POPUP
if (cType != cfgNone)
MAKE_CFG_SUBTRACK_LINK(subtrack->track,subtrack->shortLabel);
#endif///ndef SUBTRACK_CFG_POPUP
else
printf("%s",subtrack->shortLabel);
puts ("
");
}
#ifdef SUBTRACK_CFG_POPUP
dyStringFree(&dyLabel);
#endif///def SUBTRACK_CFG_POPUP
// The long label column (note that it may have a "..." that allows getting at all the metadata)
- printf ("
%s", subtrack->longLabel);
+ printf ("
%s", subtrack->longLabel);
if (trackDbSetting(parentTdb, "wgEncode") && trackDbSetting(subtrack, "accession"))
printf (" [GEO:%s]", trackDbSetting(subtrack, "accession"));
compositeMetadataToggle(db,subtrack,"...",TRUE,FALSE, trackHash);
printf(" ");
#ifndef SUBTRACK_CFG_POPUP
// Embedded cfg dialogs are within the TD that contains the longLabel. This allows a wide item to be embedded in the table
if (cType != cfgNone)
{
dependentCfgsNeedBinding = TRUE; // configurable subtrack needs to be bound to composite settings
#define CFG_SUBTRACK_DIV "
");
}
#endif///ndef SUBTRACK_CFG_POPUP
// A schema link for each track
- printf("
\n
");
+ printf("
\n
");
makeSchemaLink(db,subtrack,"schema");
printf(" ");
// Do we have a restricted until date?
char *dateDisplay = encodeRestrictionDateDisplay(db,subtrack);
if (dateDisplay)
- printf("
\n
%s ", dateDisplay);
+ printf("
\n
%s ", dateDisplay);
// End of row and free ourselves of this subtrack
puts("
\n");
checkBoxIdFree(&id);
subgroupMembershipFree(&membership);
}
// End of the table
puts("");
puts("");
printf("");
// Count of subtracks is filled in by javascript.
if (slCount(subtrackRefList) > 5)
puts(" ");