mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	Merge pull request #4417 from advplyr/book_author_secondary_sort_title
Update book library secondary title sort to use title ignore prefixes
This commit is contained in:
		
						commit
						6634ce8fd4
					
				| @ -251,6 +251,15 @@ module.exports = { | ||||
|    */ | ||||
|   getOrder(sortBy, sortDesc, collapseseries) { | ||||
|     const dir = sortDesc ? 'DESC' : 'ASC' | ||||
| 
 | ||||
|     const getTitleOrder = () => { | ||||
|       if (global.ServerSettings.sortingIgnorePrefix) { | ||||
|         return [Sequelize.literal('`libraryItem`.`titleIgnorePrefix` COLLATE NOCASE'), dir] | ||||
|       } else { | ||||
|         return [Sequelize.literal('`libraryItem`.`title` COLLATE NOCASE'), dir] | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     if (sortBy === 'addedAt') { | ||||
|       return [[Sequelize.literal('libraryItem.createdAt'), dir]] | ||||
|     } else if (sortBy === 'size') { | ||||
| @ -264,25 +273,16 @@ module.exports = { | ||||
|     } else if (sortBy === 'media.metadata.publishedYear') { | ||||
|       return [[Sequelize.literal(`CAST(\`book\`.\`publishedYear\` AS INTEGER)`), dir]] | ||||
|     } else if (sortBy === 'media.metadata.authorNameLF') { | ||||
|       return [ | ||||
|         [Sequelize.literal('`libraryItem`.`authorNamesLastFirst` COLLATE NOCASE'), dir], | ||||
|         [Sequelize.literal('`libraryItem`.`title` COLLATE NOCASE'), dir] | ||||
|       ] | ||||
|       // Sort by author name last first, secondary sort by title
 | ||||
|       return [[Sequelize.literal('`libraryItem`.`authorNamesLastFirst` COLLATE NOCASE'), dir], getTitleOrder()] | ||||
|     } else if (sortBy === 'media.metadata.authorName') { | ||||
|       return [ | ||||
|         [Sequelize.literal('`libraryItem`.`authorNamesFirstLast` COLLATE NOCASE'), dir], | ||||
|         [Sequelize.literal('`libraryItem`.`title` COLLATE NOCASE'), dir] | ||||
|       ] | ||||
|       // Sort by author name first last, secondary sort by title
 | ||||
|       return [[Sequelize.literal('`libraryItem`.`authorNamesFirstLast` COLLATE NOCASE'), dir], getTitleOrder()] | ||||
|     } else if (sortBy === 'media.metadata.title') { | ||||
|       if (collapseseries) { | ||||
|         return [[Sequelize.literal('display_title COLLATE NOCASE'), dir]] | ||||
|       } | ||||
| 
 | ||||
|       if (global.ServerSettings.sortingIgnorePrefix) { | ||||
|         return [[Sequelize.literal('`libraryItem`.`titleIgnorePrefix` COLLATE NOCASE'), dir]] | ||||
|       } else { | ||||
|         return [[Sequelize.literal('`libraryItem`.`title` COLLATE NOCASE'), dir]] | ||||
|       } | ||||
|       return [getTitleOrder()] | ||||
|     } else if (sortBy === 'sequence') { | ||||
|       const nullDir = sortDesc ? 'DESC NULLS FIRST' : 'ASC NULLS LAST' | ||||
|       return [[Sequelize.literal(`CAST(\`series.bookSeries.sequence\` AS FLOAT) ${nullDir}`)]] | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user