From 5228f669c0c8d9990daffdef5c95992b60dab25c Mon Sep 17 00:00:00 2001 From: Nicholas Wallace Date: Mon, 14 Oct 2024 19:17:07 -0700 Subject: [PATCH] Add: episode edit dropdowns --- client/components/modals/podcast/NewModal.vue | 7 ++++++- .../modals/podcast/tabs/EpisodeDetails.vue | 15 ++++++++++----- client/components/widgets/PodcastDetailsEdit.vue | 7 ++++++- client/store/globals.js | 10 +++++----- client/strings/en-us.json | 7 +++++++ 5 files changed, 34 insertions(+), 12 deletions(-) diff --git a/client/components/modals/podcast/NewModal.vue b/client/components/modals/podcast/NewModal.vue index d9e3e4614..c52ac776d 100644 --- a/client/components/modals/podcast/NewModal.vue +++ b/client/components/modals/podcast/NewModal.vue @@ -156,7 +156,12 @@ export default { return this.selectedFolder.fullPath }, podcastTypes() { - return this.$store.state.globals.podcastTypes || [] + return this.$store.state.globals.podcastTypes.map((e) => { + return { + text: this.$strings[e.descriptionKey] || e.text, + value: e.value + } + }) } }, methods: { diff --git a/client/components/modals/podcast/tabs/EpisodeDetails.vue b/client/components/modals/podcast/tabs/EpisodeDetails.vue index ce5e1b58d..2084ddee6 100644 --- a/client/components/modals/podcast/tabs/EpisodeDetails.vue +++ b/client/components/modals/podcast/tabs/EpisodeDetails.vue @@ -33,11 +33,11 @@
- +
-

Episode not linked to RSS feed episode

+

{{ $strings.LabelEpisodeNotLinkedToRssFeed }}

@@ -97,7 +97,12 @@ export default { return this.enclosure.url }, episodeTypes() { - return this.$store.state.globals.episodeTypes || [] + return this.$store.state.globals.episodeTypes.map((e) => { + return { + text: this.$strings[e.descriptionKey] || e.text, + value: e.value + } + }) } }, methods: { @@ -152,14 +157,14 @@ export default { const updateResult = await this.$axios.$patch(`/api/podcasts/${this.libraryItem.id}/episode/${this.episodeId}`, updatedDetails).catch((error) => { console.error('Failed update episode', error) this.isProcessing = false - this.$toast.error(error?.response?.data || 'Failed to update episode') + this.$toast.error(error?.response?.data || this.$strings.ToastFailedToUpdate) return false }) this.isProcessing = false if (updateResult) { if (updateResult) { - this.$toast.success('Podcast episode updated') + this.$toast.success(this.$strings.ToastItemUpdateSuccess) return true } else { this.$toast.info(this.$strings.MessageNoUpdatesWereNecessary) diff --git a/client/components/widgets/PodcastDetailsEdit.vue b/client/components/widgets/PodcastDetailsEdit.vue index 20513ba55..389ca8945 100644 --- a/client/components/widgets/PodcastDetailsEdit.vue +++ b/client/components/widgets/PodcastDetailsEdit.vue @@ -101,7 +101,12 @@ export default { return this.$store.state.libraries.filterData || {} }, podcastTypes() { - return this.$store.state.globals.podcastTypes || [] + return this.$store.state.globals.podcastTypes.map((e) => { + return { + text: this.$strings[e.descriptionKey] || e.text, + value: e.value + } + }) } }, methods: { diff --git a/client/store/globals.js b/client/store/globals.js index 8e98c56d6..f7f661f6e 100644 --- a/client/store/globals.js +++ b/client/store/globals.js @@ -72,13 +72,13 @@ export const state = () => ({ } ], podcastTypes: [ - { text: 'Episodic', value: 'episodic' }, - { text: 'Serial', value: 'serial' } + { text: 'Episodic', value: 'episodic', descriptionKey: 'LabelEpisodic' }, + { text: 'Serial', value: 'serial', descriptionKey: 'LabelSerial' } ], episodeTypes: [ - { text: 'Full', value: 'full' }, - { text: 'Trailer', value: 'trailer' }, - { text: 'Bonus', value: 'bonus' } + { text: 'Full', value: 'full', descriptionKey: 'LabelFull' }, + { text: 'Trailer', value: 'trailer', descriptionKey: 'LabelTrailer' }, + { text: 'Bonus', value: 'bonus', descriptionKey: 'LabelBonus' } ], libraryIcons: ['database', 'audiobookshelf', 'books-1', 'books-2', 'book-1', 'microphone-1', 'microphone-3', 'radio', 'podcast', 'rss', 'headphones', 'music', 'file-picture', 'rocket', 'power', 'star', 'heart'] }) diff --git a/client/strings/en-us.json b/client/strings/en-us.json index adfe1001a..d40feb870 100644 --- a/client/strings/en-us.json +++ b/client/strings/en-us.json @@ -250,6 +250,7 @@ "LabelBackupsNumberToKeep": "Number of backups to keep", "LabelBackupsNumberToKeepHelp": "Only 1 backup will be removed at a time so if you already have more backups than this you should manually remove them.", "LabelBitrate": "Bitrate", + "LabelBonus": "Bonus", "LabelBooks": "Books", "LabelButtonText": "Button Text", "LabelByAuthor": "by {0}", @@ -320,9 +321,12 @@ "LabelEnd": "End", "LabelEndOfChapter": "End of Chapter", "LabelEpisode": "Episode", + "LabelEpisodeNotLinkedToRssFeed": "Episode not linked to RSS feed", "LabelEpisodeTitle": "Episode Title", "LabelEpisodeType": "Episode Type", + "LabelEpisodeUrlFromRssFeed": "Episode URL from RSS feed", "LabelEpisodes": "Episodes", + "LabelEpisodic": "Episodic", "LabelExample": "Example", "LabelExpandSeries": "Expand Series", "LabelExpandSubSeries": "Expand Sub Series", @@ -350,6 +354,7 @@ "LabelFontScale": "Font scale", "LabelFontStrikethrough": "Strikethrough", "LabelFormat": "Format", + "LabelFull": "Full", "LabelGenre": "Genre", "LabelGenres": "Genres", "LabelHardDeleteFile": "Hard delete file", @@ -512,6 +517,7 @@ "LabelSelectUsers": "Select users", "LabelSendEbookToDevice": "Send Ebook to...", "LabelSequence": "Sequence", + "LabelSerial": "Serial", "LabelSeries": "Series", "LabelSeriesName": "Series Name", "LabelSeriesProgress": "Series Progress", @@ -624,6 +630,7 @@ "LabelTracksMultiTrack": "Multi-track", "LabelTracksNone": "No tracks", "LabelTracksSingleTrack": "Single-track", + "LabelTrailer": "Trailer", "LabelType": "Type", "LabelUnabridged": "Unabridged", "LabelUndo": "Undo",