mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-07-14 21:31:43 +00:00
Add: "Play Next" button for podcast episode table
This commit is contained in:
parent
46ac48ffbd
commit
3fc0b99cb6
19 changed files with 38 additions and 2 deletions
|
|
@ -25,6 +25,10 @@
|
|||
<ui-icon-btn :icon="isQueued ? 'playlist_add_check' : 'playlist_play'" borderless @click="queueBtnClick" />
|
||||
</ui-tooltip>
|
||||
|
||||
<ui-tooltip v-if="!isQueued && libraryItemIdStreaming && !isStreamingFromDifferentLibrary" :text="$strings.MessagePlayNext" direction="top">
|
||||
<ui-icon-btn class="scale-90" icon="queue_play_next" borderless @click="queuePlayNext" />
|
||||
</ui-tooltip>
|
||||
|
||||
<ui-tooltip :text="userIsFinished ? $strings.MessageMarkAsNotFinished : $strings.MessageMarkAsFinished" direction="top">
|
||||
<ui-read-icon-btn :disabled="isProcessingReadUpdate" :is-read="userIsFinished" borderless class="mx-1 mt-0.5" @click="toggleFinished" />
|
||||
</ui-tooltip>
|
||||
|
|
@ -201,7 +205,9 @@ export default {
|
|||
// Add to queue
|
||||
this.$emit('addToQueue', this.episode)
|
||||
}
|
||||
}
|
||||
},
|
||||
queuePlayNext() {
|
||||
this.$emit('queuePlayNext', this.episode)}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
</form>
|
||||
</div>
|
||||
<template v-for="episode in episodesList">
|
||||
<tables-podcast-episode-table-row ref="episodeRow" :key="episode.id" :episode="episode" :library-item-id="libraryItem.id" :selection-mode="isSelectionMode" class="item" @play="playEpisode" @remove="removeEpisode" @edit="editEpisode" @view="viewEpisode" @selected="episodeSelected" @addToQueue="addEpisodeToQueue" @addToPlaylist="addToPlaylist" />
|
||||
<tables-podcast-episode-table-row ref="episodeRow" :key="episode.id" :episode="episode" :library-item-id="libraryItem.id" :selection-mode="isSelectionMode" class="item" @play="playEpisode" @remove="removeEpisode" @edit="editEpisode" @view="viewEpisode" @selected="episodeSelected" @addToQueue="addEpisodeToQueue" @queuePlayNext="addEpisodeToTopOfQueue" @addToPlaylist="addToPlaylist" />
|
||||
</template>
|
||||
|
||||
<modals-podcast-remove-episode v-model="showPodcastRemoveModal" @input="removeEpisodeModalToggled" :library-item="libraryItem" :episodes="episodesToRemove" @clearSelected="clearSelected" />
|
||||
|
|
@ -274,6 +274,19 @@ export default {
|
|||
}
|
||||
this.$store.commit('addItemToQueue', queueItem)
|
||||
},
|
||||
addEpisodeToTopOfQueue(episode) {
|
||||
const queueItem = {
|
||||
libraryItemId: this.libraryItem.id,
|
||||
libraryId: this.libraryItem.libraryId,
|
||||
episodeId: episode.id,
|
||||
title: episode.title,
|
||||
subtitle: this.mediaMetadata.title,
|
||||
caption: episode.publishedAt ? `Published ${this.$formatDate(episode.publishedAt, this.dateFormat)}` : 'Unknown publish date',
|
||||
duration: episode.audioFile.duration || null,
|
||||
coverPath: this.media.coverPath || null
|
||||
}
|
||||
this.$store.commit('addItemToTopOfQueue', queueItem)
|
||||
},
|
||||
toggleBatchFinished() {
|
||||
this.batchUpdateEpisodesFinished(this.selectedEpisodes, !this.selectedIsFinished)
|
||||
},
|
||||
|
|
|
|||
|
|
@ -642,6 +642,7 @@
|
|||
"MessagePauseChapter": "Pozastavit přehrávání kapitoly",
|
||||
"MessagePlayChapter": "Poslechnout si začátek kapitoly",
|
||||
"MessagePlaylistCreateFromCollection": "Vytvořit seznam skladeb z kolekce",
|
||||
"MessagePlayNext": "Play next",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "Podcast nemá žádnou adresu URL kanálu RSS, kterou by mohl použít pro porovnávání",
|
||||
"MessageQuickMatchDescription": "Vyplňte prázdné detaily položky a obálku prvním výsledkem shody z '{0}'. Nepřepisuje podrobnosti, pokud není povoleno nastavení serveru \"Preferovat párování metadata\".",
|
||||
"MessageRemoveChapter": "Odstranit kapitolu",
|
||||
|
|
|
|||
|
|
@ -642,6 +642,7 @@
|
|||
"MessagePauseChapter": "Pause kapitelafspilning",
|
||||
"MessagePlayChapter": "Lyt til begyndelsen af kapitlet",
|
||||
"MessagePlaylistCreateFromCollection": "Opret afspilningsliste fra samling",
|
||||
"MessagePlayNext": "Play next",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "Podcast har ingen RSS-feed-URL at bruge til matchning",
|
||||
"MessageQuickMatchDescription": "Udfyld tomme elementoplysninger og omslag med første matchresultat fra '{0}'. Overskriver ikke oplysninger, medmindre serverindstillingen 'Foretræk matchet metadata' er aktiveret.",
|
||||
"MessageRemoveChapter": "Fjern kapitel",
|
||||
|
|
|
|||
|
|
@ -642,6 +642,7 @@
|
|||
"MessagePauseChapter": "Kapitelwiedergabe pausieren",
|
||||
"MessagePlayChapter": "Kapitelanfang anhören",
|
||||
"MessagePlaylistCreateFromCollection": "Erstelle eine Wiedergabeliste aus der Sammlung",
|
||||
"MessagePlayNext": "Play next",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "Der Podcast hat keine RSS-Feed-Url welche für den Online-Abgleich verwendet werden kann",
|
||||
"MessageQuickMatchDescription": "Füllt leere Details und Titelbilder mit dem ersten Treffer aus '{0}'. Überschreibt keine Details, es sei denn, die Server-Einstellung \"Passende Metadaten bevorzugen\" ist aktiviert.",
|
||||
"MessageRemoveChapter": "Kapitel löschen",
|
||||
|
|
|
|||
|
|
@ -642,6 +642,7 @@
|
|||
"MessagePauseChapter": "Pause chapter playback",
|
||||
"MessagePlayChapter": "Listen to beginning of chapter",
|
||||
"MessagePlaylistCreateFromCollection": "Create playlist from collection",
|
||||
"MessagePlayNext": "Play next",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "Podcast has no RSS feed url to use for matching",
|
||||
"MessageQuickMatchDescription": "Populate empty item details & cover with first match result from '{0}'. Does not overwrite details unless 'Prefer matched metadata' server setting is enabled.",
|
||||
"MessageRemoveChapter": "Remove chapter",
|
||||
|
|
|
|||
|
|
@ -642,6 +642,7 @@
|
|||
"MessagePauseChapter": "Pausar la reproducción del capítulo",
|
||||
"MessagePlayChapter": "Escuchar el comienzo del capítulo",
|
||||
"MessagePlaylistCreateFromCollection": "Crear una lista de reproducción a partir de una colección",
|
||||
"MessagePlayNext": "Play next",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "El podcast no tiene una URL de fuente RSS que pueda usar",
|
||||
"MessageQuickMatchDescription": "Rellenar detalles de elementos vacíos y portada con los primeros resultados de '{0}'. No sobrescribe los detalles a menos que la opción \"Preferir Metadatos Encontrados\" del servidor esté habilitada.",
|
||||
"MessageRemoveChapter": "Remover capítulos",
|
||||
|
|
|
|||
|
|
@ -642,6 +642,7 @@
|
|||
"MessagePauseChapter": "Suspendre la lecture du chapitre",
|
||||
"MessagePlayChapter": "Écouter depuis le début du chapitre",
|
||||
"MessagePlaylistCreateFromCollection": "Créer une liste de lecture depuis la collection",
|
||||
"MessagePlayNext": "Play next",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "Le Podcast n’a pas d’URL de flux RSS à utiliser pour la correspondance",
|
||||
"MessageQuickMatchDescription": "Renseigne les détails manquants ainsi que la couverture avec la première correspondance de « {0} ». N’écrase pas les données présentes à moins que le paramètre « Préférer les Métadonnées par correspondance » soit activé.",
|
||||
"MessageRemoveChapter": "Supprimer le chapitre",
|
||||
|
|
|
|||
|
|
@ -642,6 +642,7 @@
|
|||
"MessagePauseChapter": "Pause chapter playback",
|
||||
"MessagePlayChapter": "Listen to beginning of chapter",
|
||||
"MessagePlaylistCreateFromCollection": "Create playlist from collection",
|
||||
"MessagePlayNext": "Play next",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "Podcast has no RSS feed url to use for matching",
|
||||
"MessageQuickMatchDescription": "Populate empty item details & cover with first match result from '{0}'. Does not overwrite details unless 'Prefer matched metadata' server setting is enabled.",
|
||||
"MessageRemoveChapter": "Remove chapter",
|
||||
|
|
|
|||
|
|
@ -642,6 +642,7 @@
|
|||
"MessagePauseChapter": "Pause chapter playback",
|
||||
"MessagePlayChapter": "Listen to beginning of chapter",
|
||||
"MessagePlaylistCreateFromCollection": "Create playlist from collection",
|
||||
"MessagePlayNext": "Play next",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "Podcast has no RSS feed url to use for matching",
|
||||
"MessageQuickMatchDescription": "Populate empty item details & cover with first match result from '{0}'. Does not overwrite details unless 'Prefer matched metadata' server setting is enabled.",
|
||||
"MessageRemoveChapter": "Remove chapter",
|
||||
|
|
|
|||
|
|
@ -642,6 +642,7 @@
|
|||
"MessagePauseChapter": "Pause chapter playback",
|
||||
"MessagePlayChapter": "Listen to beginning of chapter",
|
||||
"MessagePlaylistCreateFromCollection": "Create playlist from collection",
|
||||
"MessagePlayNext": "Play next",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "Podcast nema RSS feed url za matchanje",
|
||||
"MessageQuickMatchDescription": "Popuni prazne detalje stavki i cover sa prvim match rezultato iz '{0}'. Ne briše detalje osim ako 'Prefer matched metadata' server postavka nije uključena.",
|
||||
"MessageRemoveChapter": "Remove chapter",
|
||||
|
|
|
|||
|
|
@ -642,6 +642,7 @@
|
|||
"MessagePauseChapter": "Metti in Pausa Capitolo",
|
||||
"MessagePlayChapter": "Ascolta dall'inizio del capitolo",
|
||||
"MessagePlaylistCreateFromCollection": "Crea playlist da una Raccolta",
|
||||
"MessagePlayNext": "Play next",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "Podcast non ha l'URL del feed RSS da utilizzare per il match",
|
||||
"MessageQuickMatchDescription": "Compila i dettagli dell'articolo vuoto e copri con il risultato della prima corrispondenza di '{0}'. Non sovrascrive i dettagli a meno che non sia abilitata l'impostazione del server \"Preferisci metadati corrispondenti\".",
|
||||
"MessageRemoveChapter": "Rimuovi Capitolo",
|
||||
|
|
|
|||
|
|
@ -642,6 +642,7 @@
|
|||
"MessagePauseChapter": "Pristabdyti skyriaus grojimą",
|
||||
"MessagePlayChapter": "Paklausyti skyriaus pradžios",
|
||||
"MessagePlaylistCreateFromCollection": "Sukurti grojaraštį iš kolekcijos",
|
||||
"MessagePlayNext": "Play next",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "Tinklalidė neturi RSS srauto URL kuriuo būtų galima sulyginti",
|
||||
"MessageQuickMatchDescription": "Užpildykite tuščius elementų duomenis ir viršelius su pirmuoju atitikimo rezultatu iš „{0}“. Neneperrašo detalių, nebent įgalintas serverio nustatymas „Pirmenybė atitaikytiems metaduomenis“.",
|
||||
"MessageRemoveChapter": "Pašalinti skyrių",
|
||||
|
|
|
|||
|
|
@ -642,6 +642,7 @@
|
|||
"MessagePauseChapter": "Pauzeer afspelen hoofdstuk",
|
||||
"MessagePlayChapter": "Luister naar begin van hoofdstuk",
|
||||
"MessagePlaylistCreateFromCollection": "Afspeellijst aanmaken vanuit collectie",
|
||||
"MessagePlayNext": "Play next",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "Podcast heeft geen RSS-feed URL om te gebruiken voor matching",
|
||||
"MessageQuickMatchDescription": "Vul lege onderdeeldetails & cover met eerste matchresultaat van '{0}'. Overschrijft geen details tenzij 'Prefereer gematchte metadata' serverinstelling is ingeschakeld.",
|
||||
"MessageRemoveChapter": "Verwijder hoofdstuk",
|
||||
|
|
|
|||
|
|
@ -642,6 +642,7 @@
|
|||
"MessagePauseChapter": "Pause avspilling av kapittel",
|
||||
"MessagePlayChapter": "Lytter på begynnelsen av kapittel",
|
||||
"MessagePlaylistCreateFromCollection": "Lag spilleliste fra samling",
|
||||
"MessagePlayNext": "Play next",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "Podcast har ingen RSS feed url til bruk av sammenligning",
|
||||
"MessageQuickMatchDescription": "Fyll inn tomme gjenstandsdetaljer og omslagsbilde med første resultat fra '{0}'. Overskriver ikke detaljene utenom 'Foretrekk funnet metadata' tjenerinstilling er aktivert.",
|
||||
"MessageRemoveChapter": "fjerne kapittel",
|
||||
|
|
|
|||
|
|
@ -642,6 +642,7 @@
|
|||
"MessagePauseChapter": "Zatrzymaj odtwarzanie rozdziały",
|
||||
"MessagePlayChapter": "Rozpocznij odtwarzanie od początku rozdziału",
|
||||
"MessagePlaylistCreateFromCollection": "Create playlist from collection",
|
||||
"MessagePlayNext": "Play next",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "Podcast nie ma adresu url kanału RSS, który mógłby zostać użyty do dopasowania",
|
||||
"MessageQuickMatchDescription": "Wypełnij puste informacje i okładkę pierwszym wynikiem dopasowania z '{0}'. Nie nadpisuje szczegółów, chyba że włączone jest ustawienie serwera 'Preferuj dopasowane metadane'.",
|
||||
"MessageRemoveChapter": "Usuń rozdział",
|
||||
|
|
|
|||
|
|
@ -642,6 +642,7 @@
|
|||
"MessagePauseChapter": "Пауза воспроизведения главы",
|
||||
"MessagePlayChapter": "Прослушать начало главы",
|
||||
"MessagePlaylistCreateFromCollection": "Создать плейлист из коллекции",
|
||||
"MessagePlayNext": "Play next",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "Подкаст не имеет URL-адреса RSS-канала, который можно использовать для поиска",
|
||||
"MessageQuickMatchDescription": "Заполняет пустые детали элемента и обложку первым результатом поиска из «{0}». Не перезаписывает сведения, если не включен параметр сервера 'Предпочитать метаданные поиска'.",
|
||||
"MessageRemoveChapter": "Удалить главу",
|
||||
|
|
|
|||
|
|
@ -642,6 +642,7 @@
|
|||
"MessagePauseChapter": "Pausa kapiteluppspelning",
|
||||
"MessagePlayChapter": "Lyssna på kapitlets början",
|
||||
"MessagePlaylistCreateFromCollection": "Skapa spellista från samling",
|
||||
"MessagePlayNext": "Play next",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "Podcasten har ingen RSS-flödes-URL att använda för matchning",
|
||||
"MessageQuickMatchDescription": "Fyll tomma objektdetaljer och omslag med första matchningsresultat från '{0}'. Överskriver inte detaljer om inte serverinställningen 'Föredra matchad metadata' är aktiverad.",
|
||||
"MessageRemoveChapter": "Ta bort kapitel",
|
||||
|
|
|
|||
|
|
@ -642,6 +642,7 @@
|
|||
"MessagePauseChapter": "暂停章节播放",
|
||||
"MessagePlayChapter": "开始章节播放",
|
||||
"MessagePlaylistCreateFromCollection": "从收藏中创建播放列表",
|
||||
"MessagePlayNext": "Play next",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "播客没有可用于匹配 RSS 源的 url",
|
||||
"MessageQuickMatchDescription": "使用来自 '{0}' 的第一个匹配结果填充空白详细信息和封面. 除非启用 '首选匹配元数据' 服务器设置, 否则不会覆盖详细信息.",
|
||||
"MessageRemoveChapter": "移除章节",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue