diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-08-18 21:42:53 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-08-18 21:42:53 -0400 |
| commit | b48d15296c1708545f358dc0ccbc48fea9b2cf00 (patch) | |
| tree | e1d13ad0810dd614a4b3f8da5e05cbc8f52fcb30 /MediaBrowser.Server.Implementations/Library | |
| parent | 6a2f6782d32603593c669632d825f29fb43f3ea6 (diff) | |
support custom ordering of user views
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/MusicManager.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/UserViewManager.cs | 14 |
2 files changed, 15 insertions, 3 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/MusicManager.cs b/MediaBrowser.Server.Implementations/Library/MusicManager.cs index df122e166..7ffbab860 100644 --- a/MediaBrowser.Server.Implementations/Library/MusicManager.cs +++ b/MediaBrowser.Server.Implementations/Library/MusicManager.cs @@ -30,8 +30,8 @@ namespace MediaBrowser.Server.Implementations.Library { var artist = _libraryManager.GetArtist(name); - var genres = _libraryManager.RootFolder - .RecursiveChildren + var genres = user.RootFolder + .GetRecursiveChildren(user) .OfType<Audio>() .Where(i => i.HasArtist(name)) .SelectMany(i => i.Genres) diff --git a/MediaBrowser.Server.Implementations/Library/UserViewManager.cs b/MediaBrowser.Server.Implementations/Library/UserViewManager.cs index e3ac2025f..63aa3764c 100644 --- a/MediaBrowser.Server.Implementations/Library/UserViewManager.cs +++ b/MediaBrowser.Server.Implementations/Library/UserViewManager.cs @@ -133,7 +133,19 @@ namespace MediaBrowser.Server.Implementations.Library } } - return _libraryManager.Sort(list, user, new[] { ItemSortBy.SortName }, SortOrder.Ascending).Cast<Folder>(); + var sorted = _libraryManager.Sort(list, user, new[] { ItemSortBy.SortName }, SortOrder.Ascending).ToList(); + + var orders = user.Configuration.OrderedViews.ToList(); + + return list + .OrderBy(i => + { + var index = orders.IndexOf(i.Id.ToString("N")); + + return index == -1 ? int.MaxValue : index; + }) + .ThenBy(sorted.IndexOf) + .ThenBy(i => i.SortName); } public Task<UserView> GetUserView(string type, User user, string sortName, CancellationToken cancellationToken) |
