983a9111e0930f4e3902b30390f2ee20b74513a1 kate Tue Jul 28 14:04:15 2020 -0700 Remove recommended track set from cart when loading new session or changing assembly, or when panel has been closed by user click on X. refs #25601 diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c index 423316e..fd0be36 100644 --- src/hg/hgTracks/hgTracks.c +++ src/hg/hgTracks/hgTracks.c @@ -8445,33 +8445,38 @@ hPrintf("%s %s on Archaeon %s Assembly", organization, browserName, freezeName); } else { if (stringIn(database, freezeName)) hPrintf("%s %s on %s %s Assembly", organization, browserName, organism, freezeName); else hPrintf("%s %s on %s %s Assembly (%s)", organization, browserName, trackHubSkipHubName(organism), freezeName, trackHubSkipHubName(database)); } } hPrintf("</B></SPAN>"); - if (defaultTracks || hideAll) - cartRemove(cart, "hgS_otherUserSessionLabel"); - char *sessionLabel = cartOptionalString(cart, "hgS_otherUserSessionLabel"); + // Disable recommended track set panel when changing tracks, session, database + char *sessionLabel = cartOptionalString(cart, hgsOtherUserSessionLabel); + char *oldDb = hashFindVal(oldVars, "db"); + if (defaultTracks || hideAll || + (oldDb && differentString(database, oldDb)) || + (sessionLabel && sameString(sessionLabel, "off"))) + cartRemove(cart, hgsOtherUserSessionLabel); + sessionLabel = cartOptionalString(cart, hgsOtherUserSessionLabel); if (sessionLabel) { char *panel = "recTrackSetsPanel"; isSessChanged = hasSessionChanged(); struct dyString *hoverText = dyStringNew(0); dyStringPrintf(hoverText, "Your browser is displaying the %s track set%s. " " Click to change to another.", sessionLabel, isSessChanged ? ", with changes (added or removed tracks) you have requested" : ""); // TODO: cleanup layout tweaking for FF on IE10 hPrintf(" "); hPrintf("<span id='spacer' style='display: inline; padding-left: 10px;' > </span>"); hPrintf("<span id='%s' class='gbSessionLabelPanel' style='display: inline-block;' title='%s'>",