Video get-modal: fix owned-season dead-end under 'Missing only'
Fully-owned seasons used to render with a disabled checkbox and expand to nothing (every episode hidden by the filter) — looked broken. Now: - Fully-owned seasons are HIDDEN while 'Missing only' is on (the filter doing its job); turn it off to see + re-download them (owned episodes are selectable). Season meta reads 'owned · N eps' when shown. - If you own EVERY episode, a hint appears: 'You have every episode. Turn off Missing only to re-download.' (instead of a blank list). Partial seasons (with gaps) show + expand as before.
This commit is contained in:
parent
419b939999
commit
9a5d187c0d
2 changed files with 15 additions and 2 deletions
|
|
@ -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 = '<div class="vgm-eps-head"><span class="vgm-eps-h">Episodes</span>' +
|
||||
'<label class="vgm-eps-toggle"><input type="checkbox" data-vgm-missing-only checked>' +
|
||||
'<span>Missing only</span></label></div><div class="vgm-eps-list">';
|
||||
|
|
@ -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 += '<div class="vgm-season">' +
|
||||
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 += '<div class="vgm-season' + (missing ? '' : ' vgm-season--owned') + '">' +
|
||||
'<div class="vgm-season-head" data-vgm-season-toggle>' +
|
||||
'<span class="vgm-season-check"><input type="checkbox" data-vgm-season-all="' + s.season_number + '"' + (missing && missing === eps.length ? ' checked' : '') + '></span>' +
|
||||
'<span class="vgm-season-name">' + esc(s.title || ('Season ' + s.season_number)) + '</span>' +
|
||||
'<span class="vgm-season-meta">' + (missing ? missing + ' missing · ' : '') + eps.length + ' eps</span>' +
|
||||
'<span class="vgm-season-meta">' + (missing ? missing + ' missing · ' : 'owned · ') + eps.length + ' eps</span>' +
|
||||
'<span class="vgm-season-chev" aria-hidden="true">⌄</span>' +
|
||||
'</div>' +
|
||||
'<div class="vgm-season-eps">' + eps.map(function (e) { return epRow(s.season_number, e, today); }).join('') + '</div>' +
|
||||
'</div>';
|
||||
});
|
||||
html += '</div>';
|
||||
// When you own everything, the missing-only view would be blank — say so.
|
||||
if (totalMissing === 0) {
|
||||
html += '<div class="vgm-eps-allowned">✓ You have every episode. Turn off “Missing only” to re-download.</div>';
|
||||
}
|
||||
wrap.innerHTML = html;
|
||||
wrap.classList.add('vgm-eps--missing-only');
|
||||
wrap.hidden = false;
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
|
|
|
|||
Loading…
Reference in a new issue