Add:Experimental collapse series for library option #322

This commit is contained in:
advplyr 2022-01-24 18:03:54 -06:00
parent 5bd6c8f553
commit d8cc0b57a5
8 changed files with 96 additions and 50 deletions

View file

@ -142,14 +142,6 @@ export default {
this.$eventBus.$emit('bookshelf-clear-selection')
this.isAllSelected = false
},
// toggleSelectAll() {
// if (this.isAllSelected) {
// this.cancelSelectionMode()
// } else {
// this.$eventBus.$emit('bookshelf-select-all')
// this.isAllSelected = true
// }
// },
toggleBatchRead() {
this.$store.commit('setProcessingBatch', true)
var newIsRead = !this.selectedIsRead

View file

@ -29,6 +29,7 @@
<div class="flex-grow hidden md:inline-block" />
<!-- <ui-text-input v-show="showSortFilters" v-model="keywordFilter" @input="keywordFilterInput" placeholder="Keyword Filter" :padding-y="1.5" clearable class="text-xs w-40 hidden md:block" /> -->
<ui-checkbox v-if="showExperimentalFeatures" v-model="settings.collapseSeries" label="Collapse Series" checkbox-bg="bg" check-color="white" small class="mr-2" @input="updateCollapseSeries" />
<controls-filter-select v-show="showSortFilters" v-model="settings.filterBy" class="w-48 h-7.5 ml-4" @change="updateFilter" />
<controls-order-select v-show="showSortFilters" v-model="settings.orderBy" :descending.sync="settings.orderDesc" class="w-48 h-7.5 ml-4" @change="updateOrder" />
<!-- <div v-show="showSortFilters" class="h-7 ml-4 flex border border-white border-opacity-25 rounded-md">
@ -72,6 +73,9 @@ export default {
}
},
computed: {
showExperimentalFeatures() {
return this.$store.state.showExperimentalFeatures
},
isGridMode() {
return this.viewMode === 'grid'
},
@ -87,14 +91,6 @@ export default {
if (this.page === 'collections') return 'Collections'
return ''
},
// _keywordFilter: {
// get() {
// return this.$store.state.audiobooks.keywordFilter
// },
// set(val) {
// this.$store.commit('audiobooks/setKeywordFilter', val)
// }
// },
paramId() {
return this.$route.params ? this.$route.params.id || '' : ''
},
@ -124,6 +120,9 @@ export default {
updateFilter() {
this.saveSettings()
},
updateCollapseSeries() {
this.saveSettings()
},
saveSettings() {
this.$store.dispatch('user/updateUserSettings', this.settings)
},

View file

@ -105,6 +105,9 @@ export default {
filterBy() {
return this.$store.getters['user/getUserSetting']('filterBy')
},
collapseSeries() {
return this.$store.getters['user/getUserSetting']('collapseSeries')
},
coverAspectRatio() {
return this.$store.getters['getServerSetting']('coverAspectRatio')
},
@ -207,19 +210,6 @@ export default {
this.isSelectionMode = false
this.isSelectAll = false
},
selectAllEntities() {
this.isSelectAll = true
if (this.entityName === 'books' || this.entityName === 'series-books') {
var allAvailableEntityIds = this.entities.map((ent) => ent.id).filter((ent) => !!ent)
this.$store.commit('setSelectedAudiobooks', allAvailableEntityIds)
}
for (const key in this.entityComponentRefs) {
if (this.entityIndexesMounted.includes(Number(key))) {
this.entityComponentRefs[key].selected = true
}
}
},
selectEntity(entity) {
if (this.entityName === 'books' || this.entityName === 'series-books') {
this.$store.commit('toggleAudiobookSelected', entity.id)
@ -255,6 +245,7 @@ export default {
console.error('failed to fetch books', error)
return null
})
console.log('payload', payload)
this.isFetchingEntities = false
if (this.pendingReset) {
this.pendingReset = false
@ -392,6 +383,9 @@ export default {
searchParams.set('sort', this.orderBy)
searchParams.set('desc', this.orderDesc ? 1 : 0)
}
if (this.collapseSeries) {
searchParams.set('collapseseries', 1)
}
}
return searchParams.toString()
},
@ -524,7 +518,6 @@ export default {
})
this.$eventBus.$on('bookshelf-clear-selection', this.clearSelectedEntities)
this.$eventBus.$on('bookshelf-select-all', this.selectAllEntities)
this.$eventBus.$on('socket_init', this.socketInit)
this.$store.commit('user/addSettingsListener', { id: 'lazy-bookshelf', meth: this.settingsUpdated })
@ -546,7 +539,6 @@ export default {
bookshelf.removeEventListener('scroll', this.scroll)
}
this.$eventBus.$off('bookshelf-clear-selection', this.clearSelectedEntities)
this.$eventBus.$off('bookshelf-select-all', this.selectAllEntities)
this.$eventBus.$off('socket_init', this.socketInit)
this.$store.commit('user/removeSettingsListener', 'lazy-bookshelf')