ec4568d14f455627aa84b614bafb82b03a2edc8a
tdreszer
  Fri May 6 14:35:35 2011 -0700
Fixes to spacing issues on hgTrackUi and hgFileUi where navlinks and description page resulted in extra lines.  Created subheadingBar div to replace one of the many nested tables and use CSS.
diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index d4687b4..c22e694 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -274,31 +274,31 @@
 return TRUE;
 }
 
 void extraUiLinks(char *db,struct trackDb *tdb, struct hash *trackHash)
 /* Show downlaods, schema and metadata links where appropriate */
 {
 boolean schemaLink = (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));
 boolean moreThanOne = (schemaLink && metadataLink)
                    || (schemaLink && downloadLink)
                    || (downloadLink && metadataLink);
 
-printf("<P>");
+printf("\n<div style='height:.8em;'></div>");
 if(moreThanOne)
     printf("<table><tr><td nowrap>View table: ");
 
 if(schemaLink)
     {
     makeSchemaLink(db,tdb,(moreThanOne ? "schema":"View table schema"));
     if(downloadLink || metadataLink)
         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)
         {
@@ -307,32 +307,30 @@
             freez(&targetDb);
         }
     if (targetDb == NULL)
         targetDb = cloneString(db);
 
     makeNamedDownloadsLink(targetDb, tdb, (moreThanOne ? "downloads":"Downloads"), trackHash);
     freez(&targetDb);
     if(metadataLink)
         printf(",");
     }
 if (metadataLink)
     compositeMetadataToggle(db,tdb,"metadata", TRUE, TRUE, trackHash);
 
 if(moreThanOne)
     printf("</td></tr></table>");
-
-puts("</P>");
 }
 
 
 char *hUserCookie()
 /* Return our cookie name. */
 {
 return cfgOptionDefault("central.cookie", "hguid");
 }
 
 char *hDownloadsServer()
 /* get the downloads server from hg.conf or the default */
 {
 return cfgOptionDefault("downloads.server", "hgdownload.cse.ucsc.edu");
 }
 
@@ -4211,32 +4209,30 @@
 // Count of subtracks is filled in by javascript.
 if (slCount(subtrackRefList) > 5)
     printf("<span class='subCBcount'></span>\n");
 
 // Restruction policy needs a link
 #ifdef SORT_ON_RESTRICTED
 if (restrictions && sortOrder != NULL)
     printf("</TD><TH><A HREF='%s' TARGET=BLANK style='font-size:.9em;'>Restriction Policy</A>", ENCODE_DATA_RELEASE_POLICY);
 #endif///def SORT_ON_RESTRICTED
 
 printf("</TD></TR>\n");
 puts("</TFOOT></TABLE>");
 if (sortOrder == NULL)
     printf("</td></tr></table>");
 
-puts("<P>");
-
 // Tying subtracks with matrix and subtrack cfgs with views requires javascript help
 puts("<script type='text/javascript'>matInitializeMatrix();</script>");
 #ifndef SUBTRACK_CFG_POPUP
 if (dependentCfgsNeedBinding)
     cfgLinkToDependentCfgs(cart,parentTdb,parentTdb->track);
 #endif//ndef SUBTRACK_CFG_POPUP
 
 // Finally we are free of all this
 membersForAllSubGroupsFree(parentTdb,&membersForAll);
 dyStringFree(&dyHtml)
 sortOrderFree(&sortOrder);
 dividersFree(&dividers);
 hierarchyFree(&hierarchy);
 }
 
@@ -6997,32 +6993,32 @@
 #endif
     }
 
 cartSaveSession(cart);
 cgiContinueHiddenVar("g");
 
 if(primarySubtrack)
     compositeUiSubtracksMatchingPrimary(db, cart, tdb,primarySubtrack);
 else
     compositeUiSubtracks(db, cart, tdb, trackHash);
 
 if (primarySubtrack == NULL)  // primarySubtrack is set for tableBrowser but not hgTrackUi
     {
     if (trackDbCountDescendantLeaves(tdb) > 5)
         {
+        puts("<div style='height:.7em;'></div>");
         cgiMakeButton("Submit", "Submit");
-        puts("<P>");
         }
     }
 }
 
 boolean superTrackDropDownWithExtra(struct cart *cart, struct trackDb *tdb,
                                 int visibleChild,char *extra)
 /* Displays hide/show dropdown for supertrack.
  * Set visibleChild to indicate whether 'show' should be grayed
  * out to indicate that no supertrack members are visible:
  *    0 to gray out (no visible children)
  *    1 don't gray out (there are visible children)
  *   -1 don't know (this function should determine)
  * If -1,i the subtracks field must be populated with the child trackDbs.
  * Returns false if not a supertrack */
 {