From b48d15296c1708545f358dc0ccbc48fea9b2cf00 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 18 Aug 2014 21:42:53 -0400 Subject: support custom ordering of user views --- .../Library/UserViewManager.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'MediaBrowser.Server.Implementations/Library/UserViewManager.cs') 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(); + 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 GetUserView(string type, User user, string sortName, CancellationToken cancellationToken) -- cgit v1.2.3