diff --git a/webui/static/script.js b/webui/static/script.js index 78dba4aa..6d53eed8 100644 --- a/webui/static/script.js +++ b/webui/static/script.js @@ -42962,13 +42962,21 @@ function _renderRedownloadStep1(overlay, track, data) { `; }).join(''); - body.innerHTML = ` -
${columnsHtml}
+ body.innerHTML = `
${columnsHtml}
`; + + // Add sticky footer for Step 1 + const modal = overlay.querySelector('.redownload-modal'); + const oldFooter = modal.querySelector('.redownload-sticky-footer'); + if (oldFooter) oldFooter.remove(); + const footer = document.createElement('div'); + footer.className = 'redownload-sticky-footer'; + footer.innerHTML = `
`; + modal.appendChild(footer); // Next button document.getElementById('redownload-next-btn').addEventListener('click', async () => { @@ -42983,10 +42991,19 @@ function _renderRedownloadStep1(overlay, track, data) { overlay.querySelector('.redownload-step[data-step="2"]').classList.add('active'); // Stream results from all download sources — columns appear as each source responds + // Body gets the scrollable content, footer is sticky outside the scroll body.innerHTML = `
Searching download sources...
+ `; + // Add sticky footer outside the scrollable body + const existingFooter = overlay.querySelector('.redownload-sticky-footer'); + if (existingFooter) existingFooter.remove(); + const modal = overlay.querySelector('.redownload-modal'); + const footer = document.createElement('div'); + footer.className = 'redownload-sticky-footer'; + footer.innerHTML = `