mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-03-01 05:29:41 +00:00
fix: restore Ctrl+A functionality and expand to categorized bookshelf (Home/Search)
This commit is contained in:
parent
d3ac9adcd5
commit
2f8a3c9fc7
2 changed files with 28 additions and 3 deletions
|
|
@ -134,8 +134,8 @@ export default {
|
||||||
return this.$route.name === 'item-id'
|
return this.$route.name === 'item-id'
|
||||||
},
|
},
|
||||||
isBookshelfPage() {
|
isBookshelfPage() {
|
||||||
const bookshelfRoutes = ['library-library-bookshelf', 'library-library-series', 'library-library-collections', 'library-library-playlists', 'library-library-authors', 'library-library']
|
if (!this.$route.name) return false
|
||||||
return bookshelfRoutes.includes(this.$route.name)
|
return this.$route.name.startsWith('library-library')
|
||||||
},
|
},
|
||||||
selectedMediaItemsArePlayable() {
|
selectedMediaItemsArePlayable() {
|
||||||
return !this.selectedMediaItems.some((i) => !i.hasTracks)
|
return !this.selectedMediaItems.some((i) => !i.hasTracks)
|
||||||
|
|
@ -543,7 +543,7 @@ export default {
|
||||||
const shift = e.shiftKey
|
const shift = e.shiftKey
|
||||||
const alt = e.altKey
|
const alt = e.altKey
|
||||||
|
|
||||||
if (ctrlOrMeta && e.key === 'a') {
|
if (ctrlOrMeta && e.key.toLowerCase() === 'a') {
|
||||||
if (this.isBookshelfPage) {
|
if (this.isBookshelfPage) {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
this.$eventBus.$emit('bookshelf_select_all')
|
this.$eventBus.$emit('bookshelf_select_all')
|
||||||
|
|
|
||||||
|
|
@ -180,6 +180,29 @@ export default {
|
||||||
this.$eventBus.$emit('item-selected', entity)
|
this.$eventBus.$emit('item-selected', entity)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
selectAll() {
|
||||||
|
const itemsToSelect = []
|
||||||
|
this.supportedShelves.forEach((shelf) => {
|
||||||
|
if (shelf.type === 'book' || shelf.type === 'podcast' || shelf.type === 'episode') {
|
||||||
|
shelf.entities.forEach((entity) => {
|
||||||
|
const mediaItem = {
|
||||||
|
id: entity.id,
|
||||||
|
libraryId: entity.libraryId,
|
||||||
|
mediaType: entity.mediaType,
|
||||||
|
hasTracks: entity.mediaType === 'podcast' || (entity.media && (entity.media.audioFile || entity.media.numTracks || (entity.media.tracks && entity.media.tracks.length)))
|
||||||
|
}
|
||||||
|
itemsToSelect.push(mediaItem)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
if (itemsToSelect.length) {
|
||||||
|
this.$store.commit('globals/addBatchMediaItemsSelected', itemsToSelect)
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$eventBus.$emit('item-selected')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
async init() {
|
async init() {
|
||||||
this.wrapperClientWidth = this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0
|
this.wrapperClientWidth = this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0
|
||||||
|
|
||||||
|
|
@ -506,6 +529,7 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
console.error('Error socket not initialized')
|
console.error('Error socket not initialized')
|
||||||
}
|
}
|
||||||
|
this.$eventBus.$on('bookshelf_select_all', this.selectAll)
|
||||||
},
|
},
|
||||||
removeListeners() {
|
removeListeners() {
|
||||||
if (this.$root.socket) {
|
if (this.$root.socket) {
|
||||||
|
|
@ -523,6 +547,7 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
console.error('Error socket not initialized')
|
console.error('Error socket not initialized')
|
||||||
}
|
}
|
||||||
|
this.$eventBus.$off('bookshelf_select_all', this.selectAll)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue