diff --git a/komga-webui/src/components/Dialogs.vue b/komga-webui/src/components/Dialogs.vue
index 84486cb2..5eb5d1c6 100644
--- a/komga-webui/src/components/Dialogs.vue
+++ b/komga-webui/src/components/Dialogs.vue
@@ -17,6 +17,19 @@
:library="deleteLibrary"
@deleted="libraryDeleted"
/>
+
+
+
+
+
@@ -24,12 +37,20 @@
import CollectionAddToDialog from '@/components/dialogs/CollectionAddToDialog.vue'
import CollectionDeleteDialog from '@/components/dialogs/CollectionDeleteDialog.vue'
import LibraryDeleteDialog from '@/components/dialogs/LibraryDeleteDialog.vue'
-import { COLLECTION_CHANGED, COLLECTION_DELETED, LIBRARY_DELETED, SERIES_CHANGED } from '@/types/events'
+import { BOOK_CHANGED, COLLECTION_CHANGED, COLLECTION_DELETED, LIBRARY_DELETED, SERIES_CHANGED } from '@/types/events'
import Vue from 'vue'
+import EditBooksDialog from '@/components/dialogs/EditBooksDialog.vue'
+import EditSeriesDialog from '@/components/dialogs/EditSeriesDialog.vue'
export default Vue.extend({
name: 'Dialogs',
- components: { CollectionAddToDialog, CollectionDeleteDialog, LibraryDeleteDialog },
+ components: {
+ CollectionAddToDialog,
+ CollectionDeleteDialog,
+ LibraryDeleteDialog,
+ EditBooksDialog,
+ EditSeriesDialog,
+ },
computed: {
addToCollectionDialog: {
get (): boolean {
@@ -64,6 +85,28 @@ export default Vue.extend({
deleteLibrary (): LibraryDto {
return this.$store.state.deleteLibrary
},
+ updateBooksDialog: {
+ get (): boolean {
+ return this.$store.state.updateBooksDialog
+ },
+ set (val) {
+ this.$store.dispatch('dialogUpdateBooksDisplay', val)
+ },
+ },
+ updateBooks (): BookDto | BookDto[] {
+ return this.$store.state.updateBooks
+ },
+ updateSeriesDialog: {
+ get (): boolean {
+ return this.$store.state.updateSeriesDialog
+ },
+ set (val) {
+ this.$store.dispatch('dialogUpdateSeriesDisplay', val)
+ },
+ },
+ updateSeries (): SeriesDto | SeriesDto[] {
+ return this.$store.state.updateSeries
+ },
},
methods: {
collectionAdded () {
@@ -92,6 +135,16 @@ export default Vue.extend({
id: this.deleteLibrary.id,
} as EventLibraryDeleted)
},
+ bookUpdated (book: BookDto) {
+ this.$eventHub.$emit(BOOK_CHANGED, {
+ id: book.id,
+ } as EventBookChanged)
+ },
+ seriesUpdated (series: SeriesDto) {
+ this.$eventHub.$emit(SERIES_CHANGED, {
+ id: series.id,
+ } as EventSeriesChanged)
+ },
},
})
diff --git a/komga-webui/src/components/dialogs/EditBooksDialog.vue b/komga-webui/src/components/dialogs/EditBooksDialog.vue
index a26f6ece..5e790d4f 100644
--- a/komga-webui/src/components/dialogs/EditBooksDialog.vue
+++ b/komga-webui/src/components/dialogs/EditBooksDialog.vue
@@ -559,14 +559,12 @@ export default Vue.extend({
const toUpdate = (this.single ? [this.books] : this.books) as BookDto[]
for (const b of toUpdate) {
try {
- const updatedBooks = await this.$komgaBooks.updateMetadata(b.id, metadata)
- updated.push(updatedBooks)
+ await this.$komgaBooks.updateMetadata(b.id, metadata)
+ this.$emit('updated', b)
} catch (e) {
this.showSnack(e.message)
- updated.push(b)
}
}
- this.$emit('update:books', this.single ? updated[0] : updated)
return true
} else return false
},
@@ -575,5 +573,5 @@ export default Vue.extend({
diff --git a/komga-webui/src/components/dialogs/EditSeriesDialog.vue b/komga-webui/src/components/dialogs/EditSeriesDialog.vue
index a90698ef..3f83d1d0 100644
--- a/komga-webui/src/components/dialogs/EditSeriesDialog.vue
+++ b/komga-webui/src/components/dialogs/EditSeriesDialog.vue
@@ -281,14 +281,12 @@ export default Vue.extend({
const toUpdate = (this.single ? [this.series] : this.series) as SeriesDto[]
for (const s of toUpdate) {
try {
- const updatedSeries = await this.$komgaSeries.updateMetadata(s.id, metadata)
- updated.push(updatedSeries)
+ await this.$komgaSeries.updateMetadata(s.id, metadata)
+ this.$emit('updated', s)
} catch (e) {
this.showSnack(e.message)
- updated.push(s)
}
}
- this.$emit('update:series', this.single ? updated[0] : updated)
return true
} else return false
},
diff --git a/komga-webui/src/services/komga-books.service.ts b/komga-webui/src/services/komga-books.service.ts
index 0c7d2129..aa8920fd 100644
--- a/komga-webui/src/services/komga-books.service.ts
+++ b/komga-webui/src/services/komga-books.service.ts
@@ -125,9 +125,9 @@ export default class KomgaBooksService {
}
}
- async updateMetadata (bookId: number, metadata: BookMetadataUpdateDto): Promise {
+ async updateMetadata (bookId: number, metadata: BookMetadataUpdateDto) {
try {
- return (await this.http.patch(`${API_BOOKS}/${bookId}/metadata`, metadata)).data
+ await this.http.patch(`${API_BOOKS}/${bookId}/metadata`, metadata)
} catch (e) {
let msg = `An error occurred while trying to update book metadata`
if (e.response.data.message) {
diff --git a/komga-webui/src/services/komga-series.service.ts b/komga-webui/src/services/komga-series.service.ts
index 1f9831ad..b3cb694a 100644
--- a/komga-webui/src/services/komga-series.service.ts
+++ b/komga-webui/src/services/komga-series.service.ts
@@ -136,9 +136,9 @@ export default class KomgaSeriesService {
}
}
- async updateMetadata (seriesId: number, metadata: SeriesMetadataUpdateDto): Promise {
+ async updateMetadata (seriesId: number, metadata: SeriesMetadataUpdateDto) {
try {
- return (await this.http.patch(`${API_SERIES}/${seriesId}/metadata`, metadata)).data
+ await this.http.patch(`${API_SERIES}/${seriesId}/metadata`, metadata)
} catch (e) {
let msg = `An error occurred while trying to update series metadata`
if (e.response.data.message) {
diff --git a/komga-webui/src/store.ts b/komga-webui/src/store.ts
index 97375731..efa78b38 100644
--- a/komga-webui/src/store.ts
+++ b/komga-webui/src/store.ts
@@ -11,6 +11,10 @@ export default new Vuex.Store({
deleteCollectionDialog: false,
deleteLibrary: {} as LibraryDto,
deleteLibraryDialog: false,
+ updateBooks: {} as BookDto | BookDto[],
+ updateBooksDialog: false,
+ updateSeries: {} as SeriesDto | SeriesDto[],
+ updateSeriesDialog: false,
},
mutations: {
setAddToCollectionSeries (state, series) {
@@ -31,6 +35,18 @@ export default new Vuex.Store({
setDeleteLibraryDialog (state, dialog) {
state.deleteLibraryDialog = dialog
},
+ setUpdateBooks (state, books) {
+ state.updateBooks = books
+ },
+ setUpdateBooksDialog (state, dialog) {
+ state.updateBooksDialog = dialog
+ },
+ setUpdateSeries (state, series) {
+ state.updateSeries = series
+ },
+ setUpdateSeriesDialog (state, dialog) {
+ state.updateSeriesDialog = dialog
+ },
},
actions: {
dialogAddSeriesToCollection ({ commit }, series) {
@@ -54,5 +70,19 @@ export default new Vuex.Store({
dialogDeleteLibraryDisplay ({ commit }, value) {
commit('setDeleteLibraryDialog', value)
},
+ dialogUpdateBooks ({ commit }, books) {
+ commit('setUpdateBooks', books)
+ commit('setUpdateBooksDialog', true)
+ },
+ dialogUpdateBooksDisplay ({ commit }, value) {
+ commit('setUpdateBooksDialog', value)
+ },
+ dialogUpdateSeries ({ commit }, series) {
+ commit('setUpdateSeries', series)
+ commit('setUpdateSeriesDialog', true)
+ },
+ dialogUpdateSeriesDisplay ({ commit }, value) {
+ commit('setUpdateSeriesDialog', value)
+ },
},
})
diff --git a/komga-webui/src/views/BrowseBook.vue b/komga-webui/src/views/BrowseBook.vue
index cf58c68a..ae801ecf 100644
--- a/komga-webui/src/views/BrowseBook.vue
+++ b/komga-webui/src/views/BrowseBook.vue
@@ -11,7 +11,7 @@
-
+
mdi-pencil
@@ -139,16 +139,12 @@
-
diff --git a/komga-webui/src/views/BrowseSeries.vue b/komga-webui/src/views/BrowseSeries.vue
index 43256847..6bb236b4 100644
--- a/komga-webui/src/views/BrowseSeries.vue
+++ b/komga-webui/src/views/BrowseSeries.vue
@@ -20,7 +20,7 @@
-
+
mdi-pencil
@@ -194,15 +194,12 @@
-
-