diff --git a/static/js/app.js b/static/js/app.js index 6b065d0..23dbcf1 100644 --- a/static/js/app.js +++ b/static/js/app.js @@ -1939,6 +1939,27 @@ async function refreshOpenFeed(btn) { if (btn) { btn.disabled = false; btn.textContent = '↻ Refresh'; } } +async function refreshAllFeedsBtn(btn) { + if (btn) { btn.disabled = true; btn.textContent = '↻ 0/' + podcastFeeds.length; } + let done = 0; + for (const feed of podcastFeeds) { + try { + await fetch('/podcasts/feeds/refresh/', { + method: 'POST', + headers: {'Content-Type': 'application/json', 'X-CSRFToken': getCsrfToken()}, + body: JSON.stringify({feed_id: feed.id}), + }); + } catch (e) {} + done++; + if (btn) btn.textContent = `↻ ${done}/${podcastFeeds.length}`; + } + await loadFeedList(); + if (podcastCurrentView === 'feeds') renderFeedList(); + if (podcastCurrentView === 'inbox') loadAndRenderInbox(); + if (podcastCurrentView === 'episodes' && podcastCurrentFeedId) openFeed(podcastCurrentFeedId); + if (btn) { btn.disabled = false; btn.textContent = '↻ All'; } +} + async function refreshAllFeeds() { if (!IS_AUTHENTICATED || !podcastFeeds.length) return; for (const feed of podcastFeeds) { diff --git a/templates/radio/player.html b/templates/radio/player.html index ea40992..099a52d 100644 --- a/templates/radio/player.html +++ b/templates/radio/player.html @@ -231,6 +231,7 @@ +