5d6dbfb0879ab769c41f832feb2a1a83415ea0f5 max Fri Nov 14 07:12:22 2025 -0800 avoid error message when igv button is not found, refs #36673 diff --git src/hg/js/igvFileHelper.js src/hg/js/igvFileHelper.js index dc8f20ee025..0c30066a0ab 100644 --- src/hg/js/igvFileHelper.js +++ src/hg/js/igvFileHelper.js @@ -341,31 +341,35 @@ } function stopSessionAutoSave() { if (sessionAutoSaveTimer !== null) { clearInterval(sessionAutoSaveTimer); sessionAutoSaveTimer = null; } } window.addEventListener("DOMContentLoaded", async () => { // The "Add IGV track" button handler. The button opens the file picker window, unless // it is already open in which case it brings that window to the front. Tracks are added // from the filePicker page by selecting track files. - document.getElementById('hgtIgv').addEventListener('click', async function (e) { + let butEl = document.getElementById('hgtIgv'); + if (butEl===null) // can only happen if page crashes, helps avoid distract engineer's attention + return; + + butEl.addEventListener('click', async function (e) { e.preventDefault(); // our if (filePicker && !filePicker.closed) { showDialog("To add tracks please use the existing IGV File Manager window."); filePicker.focus(); return; } else { // A file picker may be open from a previous session. First ping it to see if it is still there, // if it responds the user should be alerted, if needed, from a failed track load. const responded = await pingFilePicker(); if (responded) { showDialog("To add tracks please use the existing IGV File Manager window."); } else { showDialog("To add tracks please use the IGV File Manager window."); filePicker = openFilePicker(); }