Inbox/queue: clickable feed titles and episode titles
- Feed title in inbox and queue is now a link that opens the feed's episode list - Episode title in inbox is now clickable and opens the show notes sidebar - Backend: include description in inbox API response so sidebar has content Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
afcbe087bb
commit
f049c6ae66
3 changed files with 7 additions and 4 deletions
|
|
@ -629,7 +629,7 @@ def inbox(request):
|
|||
.select_related('feed')
|
||||
.order_by('-pub_date')
|
||||
.values(
|
||||
'id', 'title', 'audio_url', 'duration_seconds',
|
||||
'id', 'title', 'description', 'audio_url', 'duration_seconds',
|
||||
'pub_date', 'artwork_url',
|
||||
'feed__id', 'feed__title', 'feed__artwork_url',
|
||||
)[offset:offset + limit]
|
||||
|
|
|
|||
|
|
@ -1379,6 +1379,8 @@ body.dnd-mode .timer-display {
|
|||
color: var(--text-muted, #888); margin-top: 2px; flex-wrap: wrap;
|
||||
}
|
||||
.episode-date { font-weight: 500; color: var(--fg, #ccc); }
|
||||
.episode-feed-link { cursor: pointer; }
|
||||
.episode-feed-link:hover { text-decoration: underline; color: var(--accent, #e63946); }
|
||||
.episode-dur { color: var(--text-muted, #888); }
|
||||
|
||||
/* Episode progress bar */
|
||||
|
|
|
|||
|
|
@ -1591,6 +1591,7 @@ async function loadAndRenderInbox(append = false) {
|
|||
podcastEpCache[ep.id] = {
|
||||
id: ep.id,
|
||||
title: ep.title,
|
||||
description: ep.description || '',
|
||||
audioUrl: ep.audio_url,
|
||||
durationSeconds: ep.duration_seconds,
|
||||
positionSeconds: ep.position_seconds || 0,
|
||||
|
|
@ -1613,9 +1614,9 @@ async function loadAndRenderInbox(append = false) {
|
|||
</label>
|
||||
${ep['feed__artwork_url'] ? `<img class="podcast-thumb" src="${escapeHtml(ep['feed__artwork_url'])}" alt="">` : '<div class="podcast-thumb-placeholder"></div>'}
|
||||
<div class="episode-info">
|
||||
<div class="episode-title">${escapeHtml(ep.title)}</div>
|
||||
<div class="episode-title ep-clickable" onclick="openEpisodeSidebar(${ep.id})" title="Show notes">${escapeHtml(ep.title)}</div>
|
||||
<div class="episode-meta">
|
||||
<span class="episode-date">${escapeHtml(ep['feed__title'])}</span>
|
||||
<span class="episode-date episode-feed-link" onclick="openFeed(${ep['feed__id']})" title="Open feed">${escapeHtml(ep['feed__title'])}</span>
|
||||
${dateStr ? `<span class="episode-dur">${escapeHtml(dateStr)}</span>` : ''}
|
||||
${dur !== '0:00' ? `<span class="episode-dur">${escapeHtml(dur)}</span>` : ''}
|
||||
</div>
|
||||
|
|
@ -1813,7 +1814,7 @@ async function loadAndRenderQueue() {
|
|||
<div class="episode-info">
|
||||
<div class="episode-title">${escapeHtml(item['episode__title'])}</div>
|
||||
<div class="episode-meta">
|
||||
<span class="episode-date">${escapeHtml(item['episode__feed__title'])}</span>
|
||||
<span class="episode-date episode-feed-link" onclick="openFeed(${item['episode__feed__id']})" title="Open feed">${escapeHtml(item['episode__feed__title'])}</span>
|
||||
${dur !== '0:00' ? `<span class="episode-dur">${escapeHtml(dur)}</span>` : ''}
|
||||
</div>
|
||||
${progressPct > 0 ? `<div class="episode-progress-bar"><div class="episode-progress-fill" style="width:${progressPct.toFixed(1)}%"></div></div>` : ''}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue