mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-01-01 19:49:26 +01:00
Fix:Series page progress filter #1577
This commit is contained in:
parent
791c058ef8
commit
d95975cade
@ -64,12 +64,22 @@
|
|||||||
|
|
||||||
<div class="flex-grow hidden sm:inline-block" />
|
<div class="flex-grow hidden sm:inline-block" />
|
||||||
|
|
||||||
|
<!-- collapse series checkbox -->
|
||||||
<ui-checkbox v-if="isLibraryPage && isBookLibrary && !isBatchSelecting" v-model="settings.collapseSeries" :label="$strings.LabelCollapseSeries" checkbox-bg="bg" check-color="white" small class="mr-2" @input="updateCollapseSeries" />
|
<ui-checkbox v-if="isLibraryPage && isBookLibrary && !isBatchSelecting" v-model="settings.collapseSeries" :label="$strings.LabelCollapseSeries" checkbox-bg="bg" check-color="white" small class="mr-2" @input="updateCollapseSeries" />
|
||||||
|
|
||||||
|
<!-- library filter select -->
|
||||||
<controls-library-filter-select v-if="isLibraryPage && !isBatchSelecting" v-model="settings.filterBy" class="w-36 sm:w-44 md:w-48 h-7.5 ml-1 sm:ml-4" @change="updateFilter" />
|
<controls-library-filter-select v-if="isLibraryPage && !isBatchSelecting" v-model="settings.filterBy" class="w-36 sm:w-44 md:w-48 h-7.5 ml-1 sm:ml-4" @change="updateFilter" />
|
||||||
|
|
||||||
|
<!-- library sort select -->
|
||||||
<controls-library-sort-select v-if="isLibraryPage && !isBatchSelecting" v-model="settings.orderBy" :descending.sync="settings.orderDesc" class="w-36 sm:w-44 md:w-48 h-7.5 ml-1 sm:ml-4" @change="updateOrder" />
|
<controls-library-sort-select v-if="isLibraryPage && !isBatchSelecting" v-model="settings.orderBy" :descending.sync="settings.orderDesc" class="w-36 sm:w-44 md:w-48 h-7.5 ml-1 sm:ml-4" @change="updateOrder" />
|
||||||
|
|
||||||
|
<!-- series filter select -->
|
||||||
<controls-library-filter-select v-if="isSeriesPage && !isBatchSelecting" v-model="settings.seriesFilterBy" is-series class="w-36 sm:w-44 md:w-48 h-7.5 ml-1 sm:ml-4" @change="updateSeriesFilter" />
|
<controls-library-filter-select v-if="isSeriesPage && !isBatchSelecting" v-model="settings.seriesFilterBy" is-series class="w-36 sm:w-44 md:w-48 h-7.5 ml-1 sm:ml-4" @change="updateSeriesFilter" />
|
||||||
|
|
||||||
|
<!-- series sort select -->
|
||||||
<controls-sort-select v-if="isSeriesPage && !isBatchSelecting" v-model="settings.seriesSortBy" :descending.sync="settings.seriesSortDesc" :items="seriesSortItems" class="w-36 sm:w-44 md:w-48 h-7.5 ml-1 sm:ml-4" @change="updateSeriesSort" />
|
<controls-sort-select v-if="isSeriesPage && !isBatchSelecting" v-model="settings.seriesSortBy" :descending.sync="settings.seriesSortDesc" :items="seriesSortItems" class="w-36 sm:w-44 md:w-48 h-7.5 ml-1 sm:ml-4" @change="updateSeriesSort" />
|
||||||
|
|
||||||
|
<!-- issues page remove all button -->
|
||||||
<ui-btn v-if="isIssuesFilter && userCanDelete && !isBatchSelecting" :loading="processingIssues" color="error" small class="ml-4" @click="removeAllIssues">{{ $strings.ButtonRemoveAll }} {{ numShowing }} {{ entityName }}</ui-btn>
|
<ui-btn v-if="isIssuesFilter && userCanDelete && !isBatchSelecting" :loading="processingIssues" color="error" small class="ml-4" @click="removeAllIssues">{{ $strings.ButtonRemoveAll }} {{ numShowing }} {{ entityName }}</ui-btn>
|
||||||
</template>
|
</template>
|
||||||
<!-- search page -->
|
<!-- search page -->
|
||||||
|
@ -95,17 +95,20 @@ module.exports = {
|
|||||||
checkSeriesProgressFilter(series, filterBy, user) {
|
checkSeriesProgressFilter(series, filterBy, user) {
|
||||||
const filter = this.decode(filterBy.split('.')[1])
|
const filter = this.decode(filterBy.split('.')[1])
|
||||||
|
|
||||||
var numBooksStartedOrFinished = 0
|
let someBookHasProgress = false
|
||||||
|
let someBookIsUnfinished = false
|
||||||
for (const libraryItem of series.books) {
|
for (const libraryItem of series.books) {
|
||||||
const itemProgress = user.getMediaProgress(libraryItem.id)
|
const itemProgress = user.getMediaProgress(libraryItem.id)
|
||||||
if (filter === 'Finished' && (!itemProgress || !itemProgress.isFinished)) return false
|
if (!itemProgress || !itemProgress.isFinished) someBookIsUnfinished = true
|
||||||
if (filter === 'Not Started' && itemProgress) return false
|
if (itemProgress && itemProgress.progress > 0) someBookHasProgress = true
|
||||||
if (itemProgress) numBooksStartedOrFinished++
|
|
||||||
|
if (filter === 'finished' && (!itemProgress || !itemProgress.isFinished)) return false
|
||||||
|
if (filter === 'not-started' && itemProgress) return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if (numBooksStartedOrFinished === series.books.length) { // Completely finished series
|
if (!someBookIsUnfinished && filter === 'not-finished') { // Completely finished series
|
||||||
if (filter === 'Not Finished') return false
|
return false
|
||||||
} else if (numBooksStartedOrFinished === 0 && filter === 'In Progress') { // Series not started
|
} else if (!someBookHasProgress && filter === 'in-progress') { // Series not started
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
|
Loading…
Reference in New Issue
Block a user