diff --git a/komga-webui/src/components/BrowseSeries.vue b/komga-webui/src/components/BrowseSeries.vue
index 77dd876d5..bb06cee5d 100644
--- a/komga-webui/src/components/BrowseSeries.vue
+++ b/komga-webui/src/components/BrowseSeries.vue
@@ -48,6 +48,19 @@
+
+
+
+
+ mdi-dots-vertical
+
+
+
+
+ Analyze
+
+
+
@@ -237,6 +250,9 @@ export default Vue.extend({
}
this.books.splice(page.number * page.size, page.size, ...page.content)
this.pagesState[page.number] = LoadState.Loaded
+ },
+ analyze () {
+ this.$komgaSeries.analyzeSeries(this.series)
}
}
})
diff --git a/komga-webui/src/services/komga-series.service.ts b/komga-webui/src/services/komga-series.service.ts
index 11f085bea..8446fd691 100644
--- a/komga-webui/src/services/komga-series.service.ts
+++ b/komga-webui/src/services/komga-series.service.ts
@@ -89,4 +89,16 @@ export default class KomgaSeriesService {
throw new Error(msg)
}
}
+
+ async analyzeSeries (series: SeriesDto) {
+ try {
+ await this.http.post(`${API_SERIES}/${series.id}/analyze`)
+ } catch (e) {
+ let msg = `An error occurred while trying to analyze series '${series.name}'`
+ if (e.response.data.message) {
+ msg += `: ${e.response.data.message}`
+ }
+ throw new Error(msg)
+ }
+ }
}