From 82cf82df384b82479837fabf917ee840a84d4dba Mon Sep 17 00:00:00 2001 From: Gauthier Roebroeck Date: Mon, 16 Aug 2021 14:43:19 +0800 Subject: [PATCH] fix(webui): display series/books as unavailable if library is unavailable closes #617 --- komga-webui/src/components/ItemCard.vue | 5 ++++- komga-webui/src/types/komga-libraries.ts | 1 + komga-webui/src/views/BrowseBook.vue | 9 ++++++--- komga-webui/src/views/BrowseSeries.vue | 7 +++++-- komga-webui/src/views/Home.vue | 4 ++++ 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/komga-webui/src/components/ItemCard.vue b/komga-webui/src/components/ItemCard.vue index 19fa54a97..8c5054834 100644 --- a/komga-webui/src/components/ItemCard.vue +++ b/komga-webui/src/components/ItemCard.vue @@ -207,7 +207,10 @@ export default Vue.extend({ return this.onEdit !== undefined || this.onSelected !== undefined || this.bookReady || this.canReadPages || this.actionMenu }, computedItem(): Item { - return createItem(this.item) + let item = this.item + if ('libraryId' in this.item && this.$store.getters.getLibraryById((this.item as any).libraryId).unavailable) + item = {...item, deleted: true} + return createItem(item) }, disableHover(): boolean { return !this.overlay diff --git a/komga-webui/src/types/komga-libraries.ts b/komga-webui/src/types/komga-libraries.ts index a2d0608a7..32334c53b 100644 --- a/komga-webui/src/types/komga-libraries.ts +++ b/komga-webui/src/types/komga-libraries.ts @@ -59,4 +59,5 @@ export interface LibraryDto { convertToCbz: boolean, emptyTrashAfterScan: boolean, seriesCover: SeriesCoverDto, + unavailable: boolean, } diff --git a/komga-webui/src/views/BrowseBook.vue b/komga-webui/src/views/BrowseBook.vue index 77489beb8..9eeddd318 100644 --- a/komga-webui/src/views/BrowseBook.vue +++ b/komga-webui/src/views/BrowseBook.vue @@ -136,7 +136,7 @@ {{ $t('browse_book.outdated_tooltip') }} - + {{ $t('common.unavailable') }} @@ -418,11 +418,14 @@ export default Vue.extend({ isAdmin(): boolean { return this.$store.getters.meAdmin }, + unavailable(): boolean { + return this.book.deleted || this.$store.getters.getLibraryById(this.book.libraryId).unavailable + }, canRead(): boolean { - return this.book.media.status === 'READY' && this.$store.getters.mePageStreaming && !this.book.deleted + return this.book.media.status === 'READY' && this.$store.getters.mePageStreaming && !this.unavailable }, canDownload(): boolean { - return this.$store.getters.meFileDownload && !this.book.deleted + return this.$store.getters.meFileDownload && !this.unavailable }, thumbnailUrl(): string { return bookThumbnailUrl(this.bookId) diff --git a/komga-webui/src/views/BrowseSeries.vue b/komga-webui/src/views/BrowseSeries.vue index 615abc23e..8354f18db 100644 --- a/komga-webui/src/views/BrowseSeries.vue +++ b/komga-webui/src/views/BrowseSeries.vue @@ -139,7 +139,7 @@ {{ $t(`enums.reading_direction.${series.metadata.readingDirection}`) }} - + {{ $t('common.unavailable') }} @@ -527,8 +527,11 @@ export default Vue.extend({ isAdmin(): boolean { return this.$store.getters.meAdmin }, + unavailable(): boolean { + return this.series.deleted || this.$store.getters.getLibraryById(this.series.libraryId).unavailable + }, canDownload(): boolean { - return this.$store.getters.meFileDownload && !this.series.deleted + return this.$store.getters.meFileDownload && !this.unavailable }, fileUrl(): string { return seriesFileUrl(this.series.id) diff --git a/komga-webui/src/views/Home.vue b/komga-webui/src/views/Home.vue index 9b2105a5e..cacfdb2e1 100644 --- a/komga-webui/src/views/Home.vue +++ b/komga-webui/src/views/Home.vue @@ -85,6 +85,10 @@ {{ l.name }} + {{ $t('common.unavailable') }}