aa3580cd95ee1400a9fa6ad63ce7db846059185a
chmalee
Fri Jun 23 10:13:52 2023 -0700
Make notification box redraw highlights, refs #30670
diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js
index d670339..94e5035 100644
--- src/hg/js/hgTracks.js
+++ src/hg/js/hgTracks.js
@@ -5427,42 +5427,83 @@
// Turn on drag scrolling.
$("div.scroller").panImages();
}
// Retrieve tracks via AJAX that may take too long to draw initialliy (i.e. a remote bigWig)
var retrievables = $('#imgTbl').find("tr.mustRetrieve");
if ($(retrievables).length > 0) {
$(retrievables).each( function (i) {
var trackName = $(this).attr('id').substring(3);
imageV2.requestImgUpdate(trackName,"","");
});
}
imageV2.loadRemoteTracks();
makeItemsByDrag.load();
+ // show a tutorial page if this is a new user
+ if (typeof tour !== 'undefined' && tour) {
+ let lsKey = "hgTracks_hideTutorial";
+ let isUserLoggedIn = (typeof userLoggedIn !== 'undefined' && userLoggedIn === true);
+ let hideTutorial = localStorage.getItem(lsKey);
+ // if the user is not logged in and they have not already gone through the
+ // tutorial
+ if (!isUserLoggedIn && !hideTutorial) {
+ let msg = "We now have a guided tutorial available, " +
+ "to start the tutorial " +
+ "click here.";
+ notifBoxSetup("hgTracks", "hideTutorial", msg);
+ notifBoxShow("hgTracks", "hideTutorial");
+ $("#showTutorialLink").click(function() {
+ $("#hgTracks_hideTutorialnotifyHide").click();
+ tour.start();
+ });
+ }
+ // allow user to bring the tutorial up under the help menu whether they've seen
+ // it or not
+ let tutorialLinkMenuItem = document.createElement("li");
+ tutorialLinkMenuItem.id = "hgTracksHelpTutorialMenuItem";
+ tutorialLinkMenuItem.innerHTML = "" +
+ "Interactive Tutorial";
+ $("#help > ul")[0].appendChild(tutorialLinkMenuItem);
+ $("#hgTracksHelpTutorialLink").click(function () {
+ tour.start();
+ });
+ }
+
// Any highlighted region must be shown and warnBox must play nice with it.
imageV2.drawHighlights();
// When warnBox is dismissed, any image highlight needs to be redrawn.
$('#warnOK').click(function (e) { imageV2.drawHighlights();});
// Also extend the function that shows the warn box so that it too redraws the highlight.
showWarnBox = (function (oldShowWarnBox) {
function newShowWarnBox() {
oldShowWarnBox.apply();
imageV2.drawHighlights();
}
return newShowWarnBox;
})(showWarnBox);
+ // redraw highlights if the notification box is closed
+ $("[id$=notifyHide],[id$=notifyHideForever]").click(function(e) {
+ imageV2.drawHighlights();
+ });
+ notifBoxShow = (function(oldNotifBoxShow) {
+ function newNotifBoxShow() {
+ oldNotifBoxShow.apply();
+ imageV2.drawHighlights();
+ }
+ return newNotifBoxShow;
+ })(notifBoxShow);
}
// Drag select in chromIdeogram
if ($('img#chrom').length === 1) {
if ($('area.cytoBand').length >= 1) {
$('img#chrom').chromDrag();
}
}
// Track search uses tabs
trackSearch.init();
// Drag select initialize
if (imageV2.enabled) { // moved from window.load().
dragSelect.load(true);
@@ -5490,59 +5531,30 @@
// add a 'link' to download the current track data (under hg.conf control)
if (typeof showDownloadButton !== 'undefined' && showDownloadButton) {
newListEl = document.createElement("li");
newLink = document.createElement("a");
newLink.setAttribute("id", "hgTracksDownload");
newLink.setAttribute("name", "downloadTracks");
newLink.textContent = "Download Current Track Data";
newLink.href = "#";
newListEl.appendChild(newLink);
$("#downloads > ul")[0].appendChild(newListEl);
$("#hgTracksDownload").click(downloadCurrentTrackData.showDownloadUi);
}
- // show a tutorial page if this is a new user
- if (typeof tour !== 'undefined' && tour) {
- let lsKey = "hgTracks_hideTutorial";
- let isUserLoggedIn = (typeof userLoggedIn !== 'undefined' && userLoggedIn === true);
- let hideTutorial = localStorage.getItem(lsKey);
- // if the user is not logged in and they have not already gone through the
- // tutorial
- if (!isUserLoggedIn && !hideTutorial) {
- let msg = "We now have a guided tutorial available, " +
- "to start the tutorial " +
- "click here.";
- notifBoxSetup("hgTracks", "hideTutorial", msg);
- notifBoxShow("hgTracks", "hideTutorial");
- $("#showTutorialLink").click(function() {
- $("#hgTracks_hideTutorialnotifyHide").click();
- tour.start();
- });
- }
- // allow user to bring the tutorial up under the help menu whether they've seen
- // it or not
- let tutorialLinkMenuItem = document.createElement("li");
- tutorialLinkMenuItem.id = "hgTracksHelpTutorialMenuItem";
- tutorialLinkMenuItem.innerHTML = "" +
- "Interactive Tutorial";
- $("#help > ul")[0].appendChild(tutorialLinkMenuItem);
- $("#hgTracksHelpTutorialLink").click(function () {
- tour.start();
- });
- }
});
function hgtWarnTiming(maxSeconds) {
/* show a dialog box if the page load time was slower than x seconds. Has buttons to hide or never show this again. */
var loadTime = window.performance.timing.domContentLoadedEventStart-window.performance.timing.navigationStart; /// in msecs
var loadSeconds = loadTime/1000;
if (loadSeconds < maxSeconds)
return;
var skipNotification = localStorage.getItem("hgTracks.hideSpeedNotification");
dumpCart(loadSeconds, skipNotification);
if (skipNotification)
return;