diff --git a/webui/static/video/video-get-modal.js b/webui/static/video/video-get-modal.js index d8302ea1..8226c7c9 100644 --- a/webui/static/video/video-get-modal.js +++ b/webui/static/video/video-get-modal.js @@ -236,6 +236,7 @@ if (!d.seasons || !d.seasons.length) { wrap.hidden = true; return; } var today = isoToday(); modalState = { kind: 'show', sel: new Set() }; + var totalMissing = 0; var html = '
Episodes' + '
'; @@ -243,17 +244,24 @@ var eps = s.episodes || []; var missing = 0; eps.forEach(function (e) { if (epState(e, today) === 'missing') { missing++; modalState.sel.add(s.season_number + '_' + e.episode_number); } }); - html += '
' + + totalMissing += missing; + // Fully-owned seasons are hidden while "Missing only" is on (turn it off + // to re-download); otherwise an owned season expanded to nothing. + html += '
' + '
' + '' + '' + esc(s.title || ('Season ' + s.season_number)) + '' + - '' + (missing ? missing + ' missing · ' : '') + eps.length + ' eps' + + '' + (missing ? missing + ' missing · ' : 'owned · ') + eps.length + ' eps' + '' + '
' + '
' + eps.map(function (e) { return epRow(s.season_number, e, today); }).join('') + '
' + '
'; }); html += '
'; + // When you own everything, the missing-only view would be blank — say so. + if (totalMissing === 0) { + html += '
✓ You have every episode. Turn off “Missing only” to re-download.
'; + } wrap.innerHTML = html; wrap.classList.add('vgm-eps--missing-only'); wrap.hidden = false; diff --git a/webui/static/video/video-side.css b/webui/static/video/video-side.css index 4b7c1b73..aadcdae2 100644 --- a/webui/static/video/video-side.css +++ b/webui/static/video/video-side.css @@ -2034,3 +2034,8 @@ body[data-side="video"] #soulsync-toggle { display: none; } .vgm-follow-row input { accent-color: rgb(var(--accent-rgb, 88 101 242)); width: 17px; height: 17px; cursor: pointer; flex-shrink: 0; } .vgm-follow-txt { font-size: 13px; color: rgba(255, 255, 255, 0.82); } .vgm-follow-txt strong { color: #fff; font-weight: 800; } + +/* Fully-owned seasons hide while "Missing only" is on (turn it off to re-download). */ +.vgm-eps--missing-only .vgm-season--owned { display: none; } +.vgm-eps-allowned { display: none; padding: 22px 14px; text-align: center; font-size: 13.5px; font-weight: 600; color: rgba(108, 211, 145, 0.85); } +.vgm-eps--missing-only .vgm-eps-allowned { display: block; }