diff --git a/client/components/cards/LazyBookCard.vue b/client/components/cards/LazyBookCard.vue
index 859894a2..f14e166c 100644
--- a/client/components/cards/LazyBookCard.vue
+++ b/client/components/cards/LazyBookCard.vue
@@ -37,6 +37,8 @@
+
+
@@ -234,6 +236,10 @@ export default {
// Only added to item object when collapseSeries is enabled
return this.collapsedSeries ? this.collapsedSeries.numBooks : 0
},
+ libraryItemIdsInSeries() {
+ // Only added to item object when collapseSeries is enabled
+ return this.collapsedSeries ? this.collapsedSeries.libraryItemIds || [] : []
+ },
hasCover() {
return !!this.media.coverPath
},
@@ -298,6 +304,12 @@ export default {
itemIsFinished() {
return this.userProgress ? !!this.userProgress.isFinished : false
},
+ seriesIsFinished() {
+ return !this.libraryItemIdsInSeries.some((lid) => {
+ const progress = this.store.getters['user/getUserMediaProgress'](lid)
+ return !progress || !progress.isFinished
+ })
+ },
showError() {
if (this.recentEpisode) return false // Dont show podcast error on episode card
return this.numInvalidAudioFiles || this.numMissingParts || this.isMissing || this.isInvalid
diff --git a/server/utils/libraryHelpers.js b/server/utils/libraryHelpers.js
index 36e21842..f4017ae4 100644
--- a/server/utils/libraryHelpers.js
+++ b/server/utils/libraryHelpers.js
@@ -232,6 +232,7 @@ module.exports = {
id: seriesToUse[li.id].id,
name: seriesToUse[li.id].name,
nameIgnorePrefix: seriesToUse[li.id].nameIgnorePrefix,
+ libraryItemIds: seriesToUse[li.id].books.map(b => b.id),
numBooks: seriesToUse[li.id].books.length
}
}