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-title>Analyze</v-list-item-title>
</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"
class="list-warning">
<v-list-item-title>Delete</v-list-item-title>
@ -56,6 +59,9 @@ export default Vue.extend({
analyze () {
this.$komgaLibraries.analyzeLibrary(this.library)
},
refreshMetadata () {
this.$komgaLibraries.refreshMetadata(this.library)
},
promptDeleteLibrary () {
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> {
try {
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)
}
}
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> {
try {
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-title>Analyze</v-list-item-title>
</v-list-item>
<v-list-item @click="refreshMetadata()">
<v-list-item-title>Refresh metadata</v-list-item-title>
</v-list-item>
</v-list>
</v-menu>
</toolbar-sticky>
@ -236,6 +239,9 @@ export default Vue.extend({
analyze () {
this.$komgaBooks.analyzeBook(this.book)
},
refreshMetadata () {
this.$komgaBooks.refreshMetadata(this.book)
},
},
})
</script>

View file

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