summaryrefslogtreecommitdiff
path: root/web/js/views/media-grid.js
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-07 15:56:35 +0300
committerPaul Buetow <paul@buetow.org>2026-05-07 15:56:35 +0300
commit7f3ca21cc42979b8f1898f5dfd81f51f04aed5e0 (patch)
tree47987d9c73f2ce760cefed045ec85eee53747ff7 /web/js/views/media-grid.js
parent3f70adb2c24d558be645aacb11a97d5f95f69b76 (diff)
Fix podcast browser workflows for k1
Diffstat (limited to 'web/js/views/media-grid.js')
-rw-r--r--web/js/views/media-grid.js13
1 files changed, 9 insertions, 4 deletions
diff --git a/web/js/views/media-grid.js b/web/js/views/media-grid.js
index 5c16de0..08435b8 100644
--- a/web/js/views/media-grid.js
+++ b/web/js/views/media-grid.js
@@ -30,6 +30,10 @@ export function initMediaGrid(options = {}) {
enterFolder(folder.dataset.name);
}
});
+
+ grid?.addEventListener('podcast:episode-downloaded', () => {
+ loadMedia();
+ });
}
export async function loadMedia() {
@@ -52,7 +56,7 @@ export async function loadMedia() {
updateBreadcrumb(data.current_path);
setMedia(mediaWithBrowsePath(data.media || [], data.current_path || ''));
renderBrowse(data);
- const total = (data.media?.length || 0) + (data.folders?.length || 0);
+ const total = (data.media?.length || 0) + (data.folders?.length || 0) + (data.episodes?.length || 0);
resultCount.textContent = `${total} items`;
} else {
breadcrumb?.classList.add('hidden');
@@ -129,7 +133,8 @@ function renderBrowse(data) {
if (!grid) return;
const folders = data.folders || [];
const media = mediaWithBrowsePath(data.media || [], data.current_path || '');
- if (!folders.length && !media.length) {
+ const episodes = data.episodes || [];
+ if (!folders.length && !media.length && !episodes.length) {
grid.innerHTML = '<p class="text-muted text-sm grid-full">Folder is empty.</p>';
clearSelection();
return;
@@ -164,9 +169,9 @@ function renderBrowse(data) {
bindMediaItems(grid);
- if (data.episodes && data.episodes.length) {
+ if (episodes.length) {
import('../podcasts.js').then(m => {
- m.renderPodcastEpisodes(grid, data.episodes);
+ m.renderPodcastEpisodes(grid, episodes);
}).catch(() => {});
}
}