diff --git a/config/plugins/webhooks/news/script.js b/config/plugins/webhooks/news/script.js index 7f449bca054..01b9d5354a7 100644 --- a/config/plugins/webhooks/news/script.js +++ b/config/plugins/webhooks/news/script.js @@ -1,12 +1,7 @@ -function removeNewsOverlay() { +function hideNewsOverlay() { document.getElementById("news-container").style.visibility = "hidden"; } -function showNewsOverlay() { - document.getElementById("news-container").style.visibility = "visible"; - newsSeen(); -} - function newsSeen() { // When it's seen, remove fa, add far. const newsIconSpan = document.querySelector("#news .fa-bell"); @@ -22,45 +17,6 @@ function newsUnseen() { newsIconSpan.classList.add("fa"); } -function addNewsIframe() { - var currentGalaxyVersion = Galaxy.config.version_major; - - // TODO/@hexylena: By 21.01 we will have a proper solution for this. For - // now we'll hardcode the version users 'see'. @hexylena will remove this - // code when she writes the user-facing release notes, and then will file - // an issue for how we'll fix this properly. - if (currentGalaxyVersion == "22.01") { - currentGalaxyVersion = "21.09"; - } - - const releaseNotes = `https://docs.galaxyproject.org/en/latest/releases/${currentGalaxyVersion}_announce_user.html`; - const lastSeenVersion = window.localStorage.getItem("galaxy-news-seen-release"); - // Check that they've seen the current version's release notes. - if (lastSeenVersion != currentGalaxyVersion) { - newsUnseen(); - } else { - newsSeen(); - } - - document.querySelector("body.full-content").insertAdjacentHTML( - "afterbegin", - ` - ` - ); - - // Clicking outside of GTN closes it - document.getElementById("news-screen").addEventListener("click", () => { - removeNewsOverlay(); - }); -} - /* The masthead icon may not exist yet when this webhook executes; we need this to wait for that to happen. * elementReady function from gist: * https://gist.github.com/jwilson8767/db379026efcbd932f64382db4b02853e @@ -91,13 +47,50 @@ elementReadyNews("#news a").then((el) => { clean = el.cloneNode(true); el.parentNode.replaceChild(clean, el); - // This gets added by default. - addNewsIframe(); + let currentGalaxyVersion = Galaxy.config.version_major; + + // TODO/@hexylena: By 21.01 we will have a proper solution for this. For + // now we'll hardcode the version users 'see'. @hexylena will remove this + // code when she writes the user-facing release notes, and then will file + // an issue for how we'll fix this properly. + if (currentGalaxyVersion == "22.01") { + currentGalaxyVersion = "21.09"; + } + + const releaseNotes = `https://docs.galaxyproject.org/en/latest/releases/${currentGalaxyVersion}_announce_user.html`; + const lastSeenVersion = window.localStorage.getItem("galaxy-news-seen-release"); + // Check that they've seen the current version's release notes. + if (lastSeenVersion != currentGalaxyVersion) { + newsUnseen(); + } else { + newsSeen(); + } clean.addEventListener("click", (e) => { e.preventDefault(); e.stopPropagation(); - showNewsOverlay(); + + // If element doesn't exist, add it. + if (document.getElementById("news-container") == null) { + document.querySelector("body.full-content").insertAdjacentHTML( + "afterbegin", + ` + ` + ); + // Clicking outside of GTN closes it + document.getElementById("news-screen").addEventListener("click", () => { + hideNewsOverlay(); + }); + } + document.getElementById("news-container").style.visibility = "visible"; + newsSeen(); }); }); @@ -105,6 +98,6 @@ elementReadyNews("#news a").then((el) => { document.addEventListener("keydown", (e) => { // Check for escape button - "27" if (e.which === 27 || e.keyCode === 27) { - removeNewsOverlay(); + hideNewsOverlay(); } });