mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-03-01 05:29:41 +00:00
Add ability to hide and unhide series
List of hidden series IDs is stored in user.extraData and hidden series are filtered out of the query on the server side.
This commit is contained in:
parent
8498378bca
commit
8fb763d81e
8 changed files with 133 additions and 0 deletions
|
|
@ -603,6 +603,7 @@ class User extends Model {
|
|||
*/
|
||||
toOldJSONForBrowser(hideRootToken = false, minimal = false) {
|
||||
const seriesHideFromContinueListening = this.extraData?.seriesHideFromContinueListening || []
|
||||
const hiddenSeries = this.extraData?.hiddenSeries || []
|
||||
const librariesAccessible = this.permissions?.librariesAccessible || []
|
||||
const itemTagsSelected = this.permissions?.itemTagsSelected || []
|
||||
const permissions = { ...this.permissions }
|
||||
|
|
@ -621,6 +622,7 @@ class User extends Model {
|
|||
isOldToken: this.isOldToken,
|
||||
mediaProgress: this.mediaProgresses?.map((mp) => mp.getOldMediaProgress()) || [],
|
||||
seriesHideFromContinueListening: [...seriesHideFromContinueListening],
|
||||
hiddenSeries: [...hiddenSeries],
|
||||
bookmarks: this.bookmarks?.map((b) => ({ ...b })) || [],
|
||||
isActive: this.isActive,
|
||||
isLocked: this.isLocked,
|
||||
|
|
@ -938,6 +940,38 @@ class User extends Model {
|
|||
return true
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {string} seriesId
|
||||
* @returns {Promise<boolean>}
|
||||
*/
|
||||
async hideSeries(seriesId) {
|
||||
if (!this.extraData) this.extraData = {}
|
||||
const hiddenSeries = this.extraData.hiddenSeries || []
|
||||
if (hiddenSeries.includes(seriesId)) return false
|
||||
hiddenSeries.push(seriesId)
|
||||
this.extraData.hiddenSeries = hiddenSeries
|
||||
this.changed('extraData', true)
|
||||
await this.save()
|
||||
return true
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {string} seriesId
|
||||
* @returns {Promise<boolean>}
|
||||
*/
|
||||
async unhideSeries(seriesId) {
|
||||
if (!this.extraData) this.extraData = {}
|
||||
let hiddenSeries = this.extraData.hiddenSeries || []
|
||||
if (!hiddenSeries.includes(seriesId)) return false
|
||||
hiddenSeries = hiddenSeries.filter((sid) => sid !== seriesId)
|
||||
this.extraData.hiddenSeries = hiddenSeries
|
||||
this.changed('extraData', true)
|
||||
await this.save()
|
||||
return true
|
||||
}
|
||||
|
||||
/**
|
||||
* Update user permissions from external JSON
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue