mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-02-19 00:18:56 +01:00
Update:Fetch library API to return numUserPlaylists, only display playlists in siderail if user has playlists
This commit is contained in:
parent
0fcf978ffe
commit
083f8faa46
@ -186,7 +186,7 @@ export default {
|
|||||||
return this.$store.state.streamLibraryItem
|
return this.$store.state.streamLibraryItem
|
||||||
},
|
},
|
||||||
showPlaylists() {
|
showPlaylists() {
|
||||||
return true
|
return this.$store.state.libraries.numUserPlaylists > 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -9,6 +9,7 @@ export const state = () => ({
|
|||||||
issues: 0,
|
issues: 0,
|
||||||
folderLastUpdate: 0,
|
folderLastUpdate: 0,
|
||||||
filterData: null,
|
filterData: null,
|
||||||
|
numUserPlaylists: 0,
|
||||||
seriesSortBy: 'name',
|
seriesSortBy: 'name',
|
||||||
seriesSortDesc: false,
|
seriesSortDesc: false,
|
||||||
seriesFilterBy: 'all',
|
seriesFilterBy: 'all',
|
||||||
@ -111,15 +112,17 @@ export const actions = {
|
|||||||
return this.$axios
|
return this.$axios
|
||||||
.$get(`/api/libraries/${libraryId}?include=filterdata`)
|
.$get(`/api/libraries/${libraryId}?include=filterdata`)
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
var library = data.library
|
const library = data.library
|
||||||
var filterData = data.filterdata
|
const filterData = data.filterdata
|
||||||
var issues = data.issues || 0
|
const issues = data.issues || 0
|
||||||
|
const numUserPlaylists = data.numUserPlaylists
|
||||||
|
|
||||||
dispatch('user/checkUpdateLibrarySortFilter', library.mediaType, { root: true })
|
dispatch('user/checkUpdateLibrarySortFilter', library.mediaType, { root: true })
|
||||||
|
|
||||||
commit('addUpdate', library)
|
commit('addUpdate', library)
|
||||||
commit('setLibraryIssues', issues)
|
commit('setLibraryIssues', issues)
|
||||||
commit('setLibraryFilterData', filterData)
|
commit('setLibraryFilterData', filterData)
|
||||||
|
commit('setNumUserPlaylists', numUserPlaylists)
|
||||||
commit('setCurrentLibrary', libraryId)
|
commit('setCurrentLibrary', libraryId)
|
||||||
if (libraryChanging) {
|
if (libraryChanging) {
|
||||||
commit('setCollections', [])
|
commit('setCollections', [])
|
||||||
@ -228,6 +231,9 @@ export const mutations = {
|
|||||||
setLibraryFilterData(state, filterData) {
|
setLibraryFilterData(state, filterData) {
|
||||||
state.filterData = filterData
|
state.filterData = filterData
|
||||||
},
|
},
|
||||||
|
setNumUserPlaylists(state, numUserPlaylists) {
|
||||||
|
state.numUserPlaylists = numUserPlaylists
|
||||||
|
},
|
||||||
updateFilterDataWithItem(state, libraryItem) {
|
updateFilterDataWithItem(state, libraryItem) {
|
||||||
if (!libraryItem || !state.filterData) return
|
if (!libraryItem || !state.filterData) return
|
||||||
if (state.currentLibraryId !== libraryItem.libraryId) return
|
if (state.currentLibraryId !== libraryItem.libraryId) return
|
||||||
@ -332,6 +338,7 @@ export const mutations = {
|
|||||||
},
|
},
|
||||||
setUserPlaylists(state, playlists) {
|
setUserPlaylists(state, playlists) {
|
||||||
state.userPlaylists = playlists
|
state.userPlaylists = playlists
|
||||||
|
state.numUserPlaylists = playlists.length
|
||||||
},
|
},
|
||||||
addUpdateUserPlaylist(state, playlist) {
|
addUpdateUserPlaylist(state, playlist) {
|
||||||
const index = state.userPlaylists.findIndex(p => p.id === playlist.id)
|
const index = state.userPlaylists.findIndex(p => p.id === playlist.id)
|
||||||
@ -339,9 +346,11 @@ export const mutations = {
|
|||||||
state.userPlaylists.splice(index, 1, playlist)
|
state.userPlaylists.splice(index, 1, playlist)
|
||||||
} else {
|
} else {
|
||||||
state.userPlaylists.push(playlist)
|
state.userPlaylists.push(playlist)
|
||||||
|
state.numUserPlaylists++
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
removeUserPlaylist(state, playlist) {
|
removeUserPlaylist(state, playlist) {
|
||||||
state.userPlaylists = state.userPlaylists.filter(p => p.id !== playlist.id)
|
state.userPlaylists = state.userPlaylists.filter(p => p.id !== playlist.id)
|
||||||
|
state.numUserPlaylists = state.userPlaylists.length
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -62,10 +62,12 @@ class LibraryController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async findOne(req, res) {
|
async findOne(req, res) {
|
||||||
if (req.query.include && req.query.include === 'filterdata') {
|
const includeArray = (req.query.include || '').split(',')
|
||||||
|
if (includeArray.includes('filterdata')) {
|
||||||
return res.json({
|
return res.json({
|
||||||
filterdata: libraryHelpers.getDistinctFilterDataNew(req.libraryItems),
|
filterdata: libraryHelpers.getDistinctFilterDataNew(req.libraryItems),
|
||||||
issues: req.libraryItems.filter(li => li.hasIssues).length,
|
issues: req.libraryItems.filter(li => li.hasIssues).length,
|
||||||
|
numUserPlaylists: this.db.playlists.filter(p => p.userId === req.user.id && p.libraryId === req.library.id).length,
|
||||||
library: req.library
|
library: req.library
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user