diff --git a/components/tables/podcast/EpisodeRow.vue b/components/tables/podcast/EpisodeRow.vue
index 8380f060..4319a285 100644
--- a/components/tables/podcast/EpisodeRow.vue
+++ b/components/tables/podcast/EpisodeRow.vue
@@ -9,22 +9,18 @@
No Server Media Progress
Local Media Progress {{ Math.round(localMediaProgress.progress * 100) }}
No Local Media Progress
- -->
+ -->
Published {{ $formatDate(publishedAt, 'MMM do, yyyy') }}
-
- {{ title }}
-
+ {{ title }}
Episode #{{ episodeNumber }}
Season #{{ season }}
-
- {{ episodeType }}
-
+
{{ episodeType }}
@@ -44,7 +40,7 @@
audio_file
- {{ downloadItem ? 'downloading' : 'download' }}
+ {{ (downloadItem || startingDownload) ? 'downloading' : 'download' }}
download_done
@@ -80,7 +76,8 @@ export default {
data() {
return {
isProcessingReadUpdate: false,
- processing: false
+ processing: false,
+ startingDownload: false
}
},
computed: {
@@ -179,7 +176,13 @@ export default {
return folderObj
},
async downloadClick() {
- if (this.downloadItem) return
+ if (this.downloadItem || this.startingDownload) return
+
+ this.startingDownload = true
+ setTimeout(() => {
+ this.startingDownload = false
+ }, 1000)
+
await this.$hapticsImpact()
if (this.isIos) {
// no local folders on iOS
diff --git a/components/tables/podcast/LatestEpisodeRow.vue b/components/tables/podcast/LatestEpisodeRow.vue
index 2c99fd93..53f3dfa9 100644
--- a/components/tables/podcast/LatestEpisodeRow.vue
+++ b/components/tables/podcast/LatestEpisodeRow.vue
@@ -13,18 +13,14 @@
-
- {{ title }}
-
+ {{ title }}
{{ $strings.LabelEpisode }} #{{ episodeNumber }}
{{ $strings.LabelSeason }} #{{ season }}
-
- {{ episodeType }}
-
+
{{ episodeType }}
@@ -196,7 +192,10 @@ export default {
} else {
await this.download()
}
- this.pendingDownload = false
+
+ setTimeout(() => {
+ this.pendingDownload = false
+ }, 1000)
},
async download(selectedLocalFolder = null) {
let localFolder = selectedLocalFolder
diff --git a/pages/item/_id/_episode/index.vue b/pages/item/_id/_episode/index.vue
index 43200a4a..0a5aa62c 100644
--- a/pages/item/_id/_episode/index.vue
+++ b/pages/item/_id/_episode/index.vue
@@ -34,7 +34,7 @@
{{ playerIsPlaying ? $strings.ButtonPause : localEpisodeId ? $strings.ButtonPlay : $strings.ButtonStream }}
- {{ downloadItem ? 'downloading' : 'download' }}
+ {{ (downloadItem || startingDownload) ? 'downloading' : 'download' }}
more_vert
@@ -111,7 +111,8 @@ export default {
return {
showMoreMenu: false,
processing: false,
- resettingProgress: false
+ resettingProgress: false,
+ startingDownload: false
}
},
computed: {
@@ -369,7 +370,13 @@ export default {
}
},
async downloadClick() {
- if (this.downloadItem) return
+ if (this.downloadItem || this.startingDownload) return
+
+ this.startingDownload = true
+ setTimeout(() => {
+ this.startingDownload = false
+ }, 1000)
+
await this.$hapticsImpact()
if (this.isIos) {
// no local folders on iOS
diff --git a/pages/item/_id/index.vue b/pages/item/_id/index.vue
index 55476524..068d9b74 100644
--- a/pages/item/_id/index.vue
+++ b/pages/item/_id/index.vue
@@ -54,7 +54,7 @@
{{ $strings.ButtonRead }} {{ ebookFormat }}
- {{ downloadItem ? 'downloading' : 'download' }}
+ {{ (downloadItem || startingDownload) ? 'downloading' : 'download' }}
more_vert
@@ -79,8 +79,8 @@
{{ podcastAuthor }}
- {{ author.name }},
+ {{ author.name }}
+ ,
@@ -90,8 +90,8 @@
{{ $strings.LabelSeries }}
- {{ series.text }},
+ {{ series.text }}
+ ,
@@ -101,16 +101,16 @@
{{ $strings.LabelNarrators }}
- {{ narrator }},
+ {{ narrator }}
+ ,
{{ $strings.LabelGenres }}
- {{ genre }},
+ {{ genre }}
+ ,
@@ -206,7 +206,8 @@ export default {
windowWidth: 0,
descriptionClamped: false,
showFullDescription: false,
- episodeStartingPlayback: null
+ episodeStartingPlayback: null,
+ startingDownload: false
}
},
computed: {
@@ -585,9 +586,14 @@ export default {
this.download(localFolder)
},
async downloadClick() {
- if (this.downloadItem) {
+ if (this.downloadItem || this.startingDownload) {
return
}
+ this.startingDownload = true
+ setTimeout(() => {
+ this.startingDownload = false
+ }, 1000)
+
await this.$hapticsImpact()
if (this.isIos) {
// no local folders on iOS
diff --git a/store/globals.js b/store/globals.js
index 7b816d88..562e4fcb 100644
--- a/store/globals.js
+++ b/store/globals.js
@@ -46,7 +46,8 @@ export const state = () => ({
export const getters = {
getDownloadItem: state => (libraryItemId, episodeId = null) => {
return state.itemDownloads.find(i => {
- if (episodeId && !i.episodes.some(e => e.id == episodeId)) return false
+ // if (episodeId && !i.episodes.some(e => e.id == episodeId)) return false
+ if (episodeId && i.episodeId !== episodeId) return false
return i.libraryItemId == libraryItemId
})
},