diff --git a/komga-webui/src/services/komga-series.service.ts b/komga-webui/src/services/komga-series.service.ts index c9a6dcf5a..ddac3717d 100644 --- a/komga-webui/src/services/komga-series.service.ts +++ b/komga-webui/src/services/komga-series.service.ts @@ -128,4 +128,28 @@ export default class KomgaSeriesService { throw new Error(msg) } } + + async markAsRead (seriesId: number) { + try { + await this.http.post(`${API_SERIES}/${seriesId}/read-progress`) + } catch (e) { + let msg = `An error occurred while trying to mark as read for series '${seriesId}'` + if (e.response.data.message) { + msg += `: ${e.response.data.message}` + } + throw new Error(msg) + } + } + + async markAsUnread (seriesId: number) { + try { + await this.http.delete(`${API_SERIES}/${seriesId}/read-progress`) + } catch (e) { + let msg = `An error occurred while trying to mark as unread for series '${seriesId}'` + if (e.response.data.message) { + msg += `: ${e.response.data.message}` + } + throw new Error(msg) + } + } } diff --git a/komga-webui/src/views/BrowseLibraries.vue b/komga-webui/src/views/BrowseLibraries.vue index 1f435da8c..9f157c56f 100644 --- a/komga-webui/src/views/BrowseLibraries.vue +++ b/komga-webui/src/views/BrowseLibraries.vue @@ -47,6 +47,7 @@ + @@ -58,6 +59,24 @@ + + + + Mark as Read + + + + + + + Mark as Unread + + + mdi-pencil @@ -94,7 +113,7 @@ :items="series" :selected.sync="selected" :edit-function="this.singleEdit" - class="px-6" + class="px-4" /> @@ -319,6 +338,22 @@ export default Vue.extend({ this.editSeriesSingle = series this.dialogEditSingle = true }, + async markSelectedRead () { + await Promise.all(this.selectedSeries.map(s => + this.$komgaSeries.markAsRead(s.id), + )) + this.selectedSeries = await Promise.all(this.selectedSeries.map(s => + this.$komgaSeries.getOneSeries(s.id), + )) + }, + async markSelectedUnread () { + await Promise.all(this.selectedSeries.map(s => + this.$komgaSeries.markAsUnread(s.id), + )) + this.selectedSeries = await Promise.all(this.selectedSeries.map(s => + this.$komgaSeries.getOneSeries(s.id), + )) + }, }, }) diff --git a/komga-webui/src/views/BrowseSeries.vue b/komga-webui/src/views/BrowseSeries.vue index bccb7fd86..1be134119 100644 --- a/komga-webui/src/views/BrowseSeries.vue +++ b/komga-webui/src/views/BrowseSeries.vue @@ -10,19 +10,27 @@ - + - + Analyze - + Refresh metadata + + Mark as read + + + Mark as unread + @@ -124,7 +132,7 @@ :length="totalPages" /> - + @@ -347,6 +355,14 @@ export default Vue.extend({ this.$komgaBooks.getBook(b.id), )) }, + async markRead () { + await this.$komgaSeries.markAsRead(this.seriesId) + this.loadSeries(this.seriesId) + }, + async markUnread () { + await this.$komgaSeries.markAsUnread(this.seriesId) + this.loadSeries(this.seriesId) + }, }, })