662c142fd7755be0eadbdfa5391b9548bc7f4ccd
tdreszer
  Mon Aug 23 16:32:11 2010 -0700
Got popup box for descrition in findTracks working properly
diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c
index d362a6a..381947e 100644
--- src/hg/hgTrackUi/hgTrackUi.c
+++ src/hg/hgTrackUi/hgTrackUi.c
@@ -2450,21 +2450,23 @@
     }
 if(ajax && cartOptionalString(cart, "descriptionOnly"))
     {
-    //printf("<table><tr valign='top'><td>");
-    char * html = tdb->html;
-    struct trackDb *thisTdb = tdb;
-    // FIXME: children need to get their parents filled in before this works!
-    while(html == NULL && html[0] != 0 && thisTdb->parent != NULL)
+    //struct trackDb *tdbParent = tdbFillInAncestry(cartString(cart, "db"),tdb);
+    if (tdb->html != NULL && tdb->html[0] != 0)
+        puts(tdb->html);
+    else
         {
-        thisTdb = thisTdb->parent;
-        html = thisTdb->html;
+        struct trackDb *tdbParent = tdb->parent;
+        for (;tdbParent && (tdbParent->html == NULL || tdbParent->html[0] == 0); tdbParent = tdbParent->parent )
+            ; // Get the first parent that has html
+        if (tdbParent != NULL && tdbParent->html != NULL && tdbParent->html[0])
+            {
+            printf("<h2 style='color:%s'>Retrieved from %s Track...</h2>\n",COLOR_DARKGREEN,tdbParent->shortLabel);
+            puts(tdbParent->html);
         }
-    if (html != NULL && html[0] != 0)
-        puts(html);
     else
-        puts("<h2>No description found.</h2>");
-    //printf("</td></table>");
-    cartRemove(cart,"descriptionOnly");
+            printf("<h2>No description found for: %s.</h2>",tdbParent?tdbParent->track:tdb->track);
+        }
+    cartRemove(cart,"descriptionOnly"); // This is a once only request and should be deleted
     return;
     }