feat(podcasts): Download All queues in the LISTENING order + add-modal order dropdown
Download All previously queued in feed-native order — 'getting the last chapter first doesn't help me'. Now the queue follows the feed's effective listening order (§0 item 5b): QueueFeedDownloadsAs reads the CALLER's order override and runs episodes through services.OrderEpisodes (same helper as the sequence/reader/page surfaces — the consolidation from item 5a landed with the reverse-order commit). Queue tickets (SEQUENCE-stamped, item 4) make that enqueue order the claim order, so chapters land in the order you'll actually listen. Add modal (§0 item 5c): with 'Download all episodes now' checked, a 'Download order' select appears (pure-CSS :checked sibling reveal — no JS island, CSP-clean). Its choice is the feed's INITIAL order override (reader_settings upsert; 'feed' = no row) AND the queue order for the initial batch. Per-book by design: the override IS the download order. Test TestPodcastAddModalDownloadOrder: add with download_all+reverse → the override row exists AND persisted tickets run position 3→1. Tickets are asserted (not live queued rows) because the shared dev server's worker legitimately races this test's queue — tickets survive every state flip.
This commit is contained in:
1 parent
0f3c4a8cec
commit
5c545534c2
7 files changed
+176
-9
No files matched your search
@@ -2141,3 +2141,9 @@
|
||||
animation: podcast-indeterminate 1.3s ease-in-out infinite;
|
||||
}
|
||||
|
||||
/* ---------- Add-feed modal: order dropdown reveals with the
|
||||
"Download all" checkbox (§0 item 5c) — pure CSS, no JS island. The
|
||||
select is a sibling of the checkbox label's input. */
|
||||
.podcast-add-order { display: none; }
|
||||
#podcast-download-all:checked ~ .podcast-add-order { display: flex; }
|
||||
|
||||
Reference in new issue
Block a user