diff --git a/client/layouts/default.vue b/client/layouts/default.vue index 1b8e973b..c58a3d89 100644 --- a/client/layouts/default.vue +++ b/client/layouts/default.vue @@ -153,6 +153,7 @@ export default { }, audiobookAdded(audiobook) { // this.$store.commit('audiobooks/addUpdate', audiobook) + this.$store.commit('libraries/updateFilterDataWithAudiobook', audiobook) }, audiobookUpdated(audiobook) { if (this.$store.state.selectedAudiobook && this.$store.state.selectedAudiobook.id === audiobook.id) { @@ -161,6 +162,7 @@ export default { } // Just triggers the listeners this.$store.commit('audiobooks/audiobookUpdated', audiobook) + this.$store.commit('libraries/updateFilterDataWithAudiobook', audiobook) // this.$store.commit('audiobooks/addUpdate', audiobook) }, audiobookRemoved(audiobook) { @@ -172,9 +174,9 @@ export default { // this.$store.commit('audiobooks/remove', audiobook) }, audiobooksAdded(audiobooks) { - // audiobooks.forEach((ab) => { - // this.$store.commit('audiobooks/addUpdate', ab) - // }) + audiobooks.forEach((ab) => { + this.audiobookAdded(ab) + }) }, audiobooksUpdated(audiobooks) { audiobooks.forEach((ab) => { diff --git a/client/store/libraries.js b/client/store/libraries.js index 691a53e3..48793985 100644 --- a/client/store/libraries.js +++ b/client/store/libraries.js @@ -172,5 +172,46 @@ export const mutations = { }, setLibraryFilterData(state, filterData) { state.filterData = filterData + }, + updateFilterDataWithAudiobook(state, audiobook) { + if (!audiobook || !audiobook.book || !state.filterData) return + if (state.currentLibraryId !== audiobook.libraryId) return + /* + var filterdata = { + authors: [], + genres: [], + tags: [], + series: [], + narrators: [] + } + */ + + if (audiobook.book.authorFL) { + audiobook.book.authorFL.split(', ').forEach((author) => { + if (author && !state.filterData.authors.includes(author)) { + state.filterData.authors.push(author) + } + }) + } + if (audiobook.book.narratorFL) { + audiobook.book.narratorFL.split(', ').forEach((narrator) => { + if (narrator && !state.filterData.narrators.includes(narrator)) { + state.filterData.narrators.push(narrator) + } + }) + } + if (audiobook.book.series && !state.filterData.series.includes(audiobook.book.series)) { + state.filterData.series.push(audiobook.book.series) + } + if (audiobook.tags && audiobook.tags.length) { + audiobook.tags.forEach((tag) => { + if (tag && !state.filterData.tags.includes(tag)) state.filterData.tags.push(tag) + }) + } + if (audiobook.book.genres && audiobook.book.genres.length) { + audiobook.book.genres.forEach((genre) => { + if (tag && !state.filterData.genres.includes(genre)) state.filterData.genres.push(genre) + }) + } } } \ No newline at end of file