feat(webui): action menu to refresh metadata

This commit is contained in:
Gauthier Roebroeck 2020-04-03 12:15:54 +08:00
parent af01d25ede
commit 6ad59c4efb
6 changed files with 54 additions and 0 deletions

View file

@ -13,6 +13,9 @@
<v-list-item @click="analyze"> <v-list-item @click="analyze">
<v-list-item-title>Analyze</v-list-item-title> <v-list-item-title>Analyze</v-list-item-title>
</v-list-item> </v-list-item>
<v-list-item @click="refreshMetadata">
<v-list-item-title>Refresh metadata</v-list-item-title>
</v-list-item>
<v-list-item @click="promptDeleteLibrary" <v-list-item @click="promptDeleteLibrary"
class="list-warning"> class="list-warning">
<v-list-item-title>Delete</v-list-item-title> <v-list-item-title>Delete</v-list-item-title>
@ -56,6 +59,9 @@ export default Vue.extend({
analyze () { analyze () {
this.$komgaLibraries.analyzeLibrary(this.library) this.$komgaLibraries.analyzeLibrary(this.library)
}, },
refreshMetadata () {
this.$komgaLibraries.refreshMetadata(this.library)
},
promptDeleteLibrary () { promptDeleteLibrary () {
this.modalDeleteLibrary = true this.modalDeleteLibrary = true
}, },

View file

@ -96,6 +96,18 @@ export default class KomgaBooksService {
} }
} }
async refreshMetadata (book: BookDto) {
try {
await this.http.post(`${API_BOOKS}/${book.id}/metadata/refresh`)
} catch (e) {
let msg = `An error occurred while trying to refresh metadata for book '${book.name}'`
if (e.response.data.message) {
msg += `: ${e.response.data.message}`
}
throw new Error(msg)
}
}
async updateMetadata (bookId: number, metadata: BookMetadataUpdateDto): Promise<BookDto> { async updateMetadata (bookId: number, metadata: BookMetadataUpdateDto): Promise<BookDto> {
try { try {
return (await this.http.patch(`${API_BOOKS}/${bookId}/metadata`, metadata)).data return (await this.http.patch(`${API_BOOKS}/${bookId}/metadata`, metadata)).data

View file

@ -80,4 +80,16 @@ export default class KomgaLibrariesService {
throw new Error(msg) throw new Error(msg)
} }
} }
async refreshMetadata (library: LibraryDto) {
try {
await this.http.post(`${API_LIBRARIES}/${library.id}/metadata/refresh`)
} catch (e) {
let msg = `An error occurred while trying to refresh metadata for library '${library.name}'`
if (e.response.data.message) {
msg += `: ${e.response.data.message}`
}
throw new Error(msg)
}
}
} }

View file

@ -105,6 +105,18 @@ export default class KomgaSeriesService {
} }
} }
async refreshMetadata (series: SeriesDto) {
try {
await this.http.post(`${API_SERIES}/${series.id}/metadata/refresh`)
} catch (e) {
let msg = `An error occurred while trying to refresh metadata for series '${series.name}'`
if (e.response.data.message) {
msg += `: ${e.response.data.message}`
}
throw new Error(msg)
}
}
async updateMetadata (seriesId: number, metadata: SeriesMetadataUpdateDto): Promise<SeriesDto> { async updateMetadata (seriesId: number, metadata: SeriesMetadataUpdateDto): Promise<SeriesDto> {
try { try {
return (await this.http.patch(`${API_SERIES}/${seriesId}/metadata`, metadata)).data return (await this.http.patch(`${API_SERIES}/${seriesId}/metadata`, metadata)).data

View file

@ -26,6 +26,9 @@
<v-list-item @click="analyze()"> <v-list-item @click="analyze()">
<v-list-item-title>Analyze</v-list-item-title> <v-list-item-title>Analyze</v-list-item-title>
</v-list-item> </v-list-item>
<v-list-item @click="refreshMetadata()">
<v-list-item-title>Refresh metadata</v-list-item-title>
</v-list-item>
</v-list> </v-list>
</v-menu> </v-menu>
</toolbar-sticky> </toolbar-sticky>
@ -236,6 +239,9 @@ export default Vue.extend({
analyze () { analyze () {
this.$komgaBooks.analyzeBook(this.book) this.$komgaBooks.analyzeBook(this.book)
}, },
refreshMetadata () {
this.$komgaBooks.refreshMetadata(this.book)
},
}, },
}) })
</script> </script>

View file

@ -20,6 +20,9 @@
<v-list-item @click="analyze()"> <v-list-item @click="analyze()">
<v-list-item-title>Analyze</v-list-item-title> <v-list-item-title>Analyze</v-list-item-title>
</v-list-item> </v-list-item>
<v-list-item @click="refreshMetadata()">
<v-list-item-title>Refresh metadata</v-list-item-title>
</v-list-item>
</v-list> </v-list>
</v-menu> </v-menu>
@ -330,6 +333,9 @@ export default mixins(VisibleElements).extend({
analyze () { analyze () {
this.$komgaSeries.analyzeSeries(this.series) this.$komgaSeries.analyzeSeries(this.series)
}, },
refreshMetadata () {
this.$komgaSeries.refreshMetadata(this.series)
},
singleEdit (book: BookDto) { singleEdit (book: BookDto) {
this.editBookSingle = book this.editBookSingle = book
this.dialogEditBookSingle = true this.dialogEditBookSingle = true