From dab83c4f6a63a07ac5075bf1a62c1fc65692a18a Mon Sep 17 00:00:00 2001 From: Deluan <deluan@navidrome.org> Date: Wed, 23 Dec 2020 11:38:40 -0500 Subject: [PATCH] Disambiguate tracks by AlbumArtist when sorting by album --- ui/src/song/AlbumLinkField.js | 8 +++++++- ui/src/song/SongList.js | 10 +++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ui/src/song/AlbumLinkField.js b/ui/src/song/AlbumLinkField.js index 17fceca75..786370b74 100644 --- a/ui/src/song/AlbumLinkField.js +++ b/ui/src/song/AlbumLinkField.js @@ -1,5 +1,6 @@ -import { Link } from 'react-admin' import React from 'react' +import PropTypes from 'prop-types' +import { Link } from 'react-admin' export const AlbumLinkField = (props) => ( <Link @@ -10,6 +11,11 @@ export const AlbumLinkField = (props) => ( </Link> ) +AlbumLinkField.propTypes = { + sortBy: PropTypes.string, + sortByOrder: PropTypes.oneOf(['ASC', 'DESC']), +} + AlbumLinkField.defaultProps = { addLabel: true, } diff --git a/ui/src/song/SongList.js b/ui/src/song/SongList.js index 2a602df09..f4c8b32a3 100644 --- a/ui/src/song/SongList.js +++ b/ui/src/song/SongList.js @@ -98,7 +98,15 @@ const SongList = (props) => { classes={{ row: classes.row }} > <SongTitleField source="title" showTrackNumbers={false} /> - {isDesktop && <AlbumLinkField source="album" />} + {isDesktop && ( + <AlbumLinkField + source="album" + sortBy={ + 'album, order_album_artist_name, disc_number, track_number, title' + } + sortByOrder={'ASC'} + /> + )} <TextField source="artist" /> {isDesktop && <NumberField source="trackNumber" />} {isDesktop && (