ad817e42579bdda050549af9f5a9f9813453d83f
kate
  Tue Jul 28 12:17:53 2020 -0700
Restore mouseover change when track set changes, fixing prob with undefined object. TODO is to short-circuit updateSessionPanel when no rec track set. refs #25601

diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js
index 4b171b3..2679b52 100644
--- src/hg/js/hgTracks.js
+++ src/hg/js/hgTracks.js
@@ -780,37 +780,36 @@
 ///////////////////////
 var cart = {
     // Controls queuing and ultimately updating cart variables vis ajax or submit. Queued vars
     // are held in an object with unique keys preventing duplicate updates and ensuring last update 
     // takes precedence.  WARNING: be careful creating an object with variables on the fly:
     // cart.setVarsObj({track: vis}) is invalid but cart.setVarsObj({'knownGene': vis}) is ok! 
 
     updateSessionPanel: function()
     {
     // change color of text
     $('span.gbSessionChangeIndicator').addClass('gbSessionChanged');
 
     // change mouseover on the panel.  A bit fragile here inserting text in the mouseover specified in
     // hgTracks.js, so depends on match with text there, and should present same message as C code
     // (Perhaps this could be added as a script tag, so not duplicated)
-// Emergency whack -- causing hang on genome-test.  Investigating...
-    //var txt = $('span.gbSessionLabelPanel').attr('title');
-    //if (!txt.match(/with changes/)) {
-        //$('span.gbSessionLabelPanel').attr('title', txt.replace(
-                                   //"track set", 
-                                   //"track set, with changes (added or removed tracks) you have requested"));
-        //}
+    var txt = $('span.gbSessionLabelPanel').attr('title');
+    if (txt && !txt.match(/with changes/)) {
+        $('span.gbSessionLabelPanel').attr('title', txt.replace(
+                                   "track set", 
+                                   "track set, with changes (added or removed tracks) you have requested"));
+        }
     },
 
     updateQueue: {},
     
     updatesWaiting: function ()
     {   // returns TRUE if updates are waiting.
         return objNotEmpty(cart.updateQueue);
     },
     
     addUpdatesToUrl: function (url)
     {   // adds any outstanding cart updates to the url, then clears the queue
         if (cart.updatesWaiting()) {
             //console.log('cart.addUpdatesToUrl: '+objKeyCount(cart.updateQueue)+' vars');
             var updates = cart.varsToUrlData(); // clears the queue
             if (!url || url.length === 0)