This commit is contained in:
davidsteinar 2026-07-02 18:29:16 +02:00 committed by GitHub
commit 95ffc8b624
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 30 additions and 3 deletions

View file

@ -711,6 +711,7 @@ export default {
var router = this.$router || this.$nuxt.$router
if (router) {
if (this.collapsedSeries) router.push(`/library/${this.libraryId}/series/${this.collapsedSeries.id}`)
else if (this.recentEpisode) router.push(`/item/${this.libraryItemId}?episodeId=${this.recentEpisode.id}`)
else router.push(`/item/${this.libraryItemId}`)
}
}

View file

@ -42,7 +42,7 @@
<p v-if="episodeResults.length" class="uppercase text-xs text-gray-400 my-1 px-1 font-semibold">{{ $strings.LabelEpisodes }}</p>
<template v-for="item in episodeResults">
<li :key="item.libraryItem.recentEpisode.id" class="text-gray-50 select-none relative cursor-pointer hover:bg-black-400 py-1" role="option" @click="clickOption">
<nuxt-link :to="`/item/${item.libraryItem.id}`">
<nuxt-link :to="`/item/${item.libraryItem.id}?episodeId=${item.libraryItem.recentEpisode.id}`">
<cards-episode-search-card :episode="item.libraryItem.recentEpisode" :library-item="item.libraryItem" />
</nuxt-link>
</li>
@ -92,6 +92,12 @@
</nuxt-link>
</li>
</template>
<li class="border-t border-white/10 mt-2 pt-1">
<button class="w-full text-left px-2 py-2 text-xs text-gray-300 hover:text-white hover:bg-black-400 rounded flex items-center gap-1" @click="submitSearch">
<span class="material-symbols" style="font-size: 1rem">search</span>
{{ $strings.ButtonSeeAllResultsFor || 'See all results for' }} "{{ lastSearch }}"
</button>
</li>
</template>
</ul>
</div>

View file

@ -14,6 +14,9 @@
<p class="text-base mb-1">{{ podcastTitle }}</p>
<p class="text-xs text-gray-300">{{ podcastAuthor }}</p>
</div>
<button class="flex items-center justify-center w-10 h-10 rounded-full bg-white/10 hover:bg-white/20 text-white" @click="play">
<span class="material-symbols text-2xl">play_arrow</span>
</button>
</div>
<p dir="auto" class="text-lg font-semibold mb-6">{{ title }}</p>
<div v-if="description" dir="auto" class="default-style less-spacing" @click="handleDescriptionClick" v-html="description" />
@ -105,6 +108,13 @@ export default {
}
},
methods: {
play() {
this.$eventBus.$emit('play-item', {
libraryItemId: this.libraryItem.id,
episodeId: this.episodeId
})
this.show = false
},
handleDescriptionClick(e) {
if (e.target.matches('span.time-marker')) {
const time = parseInt(e.target.dataset.time)

View file

@ -785,6 +785,16 @@ export default {
this.episodeDownloadsQueued = this.libraryItem.episodeDownloadsQueued || []
this.episodesDownloading = this.libraryItem.episodesDownloading || []
const episodeId = this.$route.query.episodeId
if (episodeId) {
const episode = this.podcastEpisodes.find((ep) => ep.id === episodeId)
if (episode) {
this.$store.commit('setSelectedLibraryItem', this.libraryItem)
this.$store.commit('globals/setSelectedEpisode', episode)
this.$store.commit('globals/setShowViewPodcastEpisodeModal', true)
}
}
this.$eventBus.$on(`${this.libraryItem.id}_updated`, this.libraryItemUpdated)
this.$root.socket.on('item_updated', this.libraryItemUpdated)
this.$root.socket.on('rss_feed_open', this.rssFeedOpen)

View file

@ -414,10 +414,10 @@ module.exports = {
})
}
// Search podcast episode title
// Search podcast episode title and description
const podcastEpisodes = await Database.podcastEpisodeModel.findAll({
where: [
Sequelize.literal(textSearchQuery.matchExpression('podcastEpisode.title')),
Sequelize.literal(`(${textSearchQuery.matchExpression('podcastEpisode.title')} OR ${textSearchQuery.matchExpression('podcastEpisode.description')})`),
{
'$podcast.libraryItem.libraryId$': library.id
}