aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs10
-rw-r--r--MediaBrowser.Controller/Entities/TV/Season.cs2
-rw-r--r--MediaBrowser.Controller/Entities/TV/Series.cs2
-rw-r--r--MediaBrowser.Controller/Entities/UserRootFolder.cs2
-rw-r--r--MediaBrowser.Controller/Entities/UserViewBuilder.cs25
5 files changed, 24 insertions, 17 deletions
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index f8eb414b6..b19667942 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -702,7 +702,7 @@ namespace MediaBrowser.Controller.Entities
items = GetRecursiveChildren(user, query);
}
- return PostFilterAndSort(items, query);
+ return PostFilterAndSort(items, query, true, true);
}
if (!(this is UserRootFolder) && !(this is AggregateFolder))
@@ -903,7 +903,7 @@ namespace MediaBrowser.Controller.Entities
if (query.ItemIds.Length > 0)
{
var specificItems = query.ItemIds.Select(LibraryManager.GetItemById).Where(i => i != null).ToList();
- return Task.FromResult(PostFilterAndSort(specificItems, query));
+ return Task.FromResult(PostFilterAndSort(specificItems, query, true, true));
}
return GetItemsInternal(query);
@@ -959,12 +959,12 @@ namespace MediaBrowser.Controller.Entities
: GetChildren(user, true).Where(filter);
}
- return PostFilterAndSort(items, query);
+ return PostFilterAndSort(items, query, true, true);
}
- protected QueryResult<BaseItem> PostFilterAndSort(IEnumerable<BaseItem> items, InternalItemsQuery query)
+ protected QueryResult<BaseItem> PostFilterAndSort(IEnumerable<BaseItem> items, InternalItemsQuery query, bool collapseBoxSetItems, bool enableSorting)
{
- return UserViewBuilder.PostFilterAndSort(items, this, null, query, LibraryManager, ConfigurationManager);
+ return UserViewBuilder.PostFilterAndSort(items, this, null, query, LibraryManager, ConfigurationManager, collapseBoxSetItems, enableSorting);
}
public virtual IEnumerable<BaseItem> GetChildren(User user, bool includeLinkedChildren)
diff --git a/MediaBrowser.Controller/Entities/TV/Season.cs b/MediaBrowser.Controller/Entities/TV/Season.cs
index 33d4f16a9..628e27c02 100644
--- a/MediaBrowser.Controller/Entities/TV/Season.cs
+++ b/MediaBrowser.Controller/Entities/TV/Season.cs
@@ -176,7 +176,7 @@ namespace MediaBrowser.Controller.Entities.TV
var items = GetEpisodes(user).Where(filter);
Logger.Debug("Season.GetItemsInternal entering PostFilterAndSort. Request id: " + id);
- var result = PostFilterAndSort(items, query);
+ var result = PostFilterAndSort(items, query, false, false);
Logger.Debug("Season.GetItemsInternal complete. Request id: " + id);
return Task.FromResult(result);
diff --git a/MediaBrowser.Controller/Entities/TV/Series.cs b/MediaBrowser.Controller/Entities/TV/Series.cs
index 30c06b244..e48c32a25 100644
--- a/MediaBrowser.Controller/Entities/TV/Series.cs
+++ b/MediaBrowser.Controller/Entities/TV/Series.cs
@@ -237,7 +237,7 @@ namespace MediaBrowser.Controller.Entities.TV
Func<BaseItem, bool> filter = i => UserViewBuilder.Filter(i, user, query, UserDataManager, LibraryManager);
var items = GetSeasons(user).Where(filter);
- var result = PostFilterAndSort(items, query);
+ var result = PostFilterAndSort(items, query, false, true);
return Task.FromResult(result);
}
diff --git a/MediaBrowser.Controller/Entities/UserRootFolder.cs b/MediaBrowser.Controller/Entities/UserRootFolder.cs
index bd25d3a6a..aff1f5e28 100644
--- a/MediaBrowser.Controller/Entities/UserRootFolder.cs
+++ b/MediaBrowser.Controller/Entities/UserRootFolder.cs
@@ -58,7 +58,7 @@ namespace MediaBrowser.Controller.Entities
var user = query.User;
Func<BaseItem, bool> filter = i => UserViewBuilder.Filter(i, user, query, UserDataManager, LibraryManager);
- return PostFilterAndSort(result.Where(filter), query);
+ return PostFilterAndSort(result.Where(filter), query, true, true);
}
public override int GetChildCount(User user)
diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
index d0f7efa8c..6128192ea 100644
--- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs
+++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
@@ -424,7 +424,7 @@ namespace MediaBrowser.Controller.Entities
query.SortBy = new string[] { };
- return PostFilterAndSort(items, parent, null, query);
+ return PostFilterAndSort(items, parent, null, query, false, true);
}
private QueryResult<BaseItem> GetFavoriteSongs(Folder parent, User user, InternalItemsQuery query)
@@ -780,7 +780,7 @@ namespace MediaBrowser.Controller.Entities
{
items = items.Where(i => Filter(i, query.User, query, _userDataManager, _libraryManager));
- return PostFilterAndSort(items, queryParent, null, query, _libraryManager, _config);
+ return PostFilterAndSort(items, queryParent, null, query, _libraryManager, _config, true, true);
}
public static bool FilterItem(BaseItem item, InternalItemsQuery query)
@@ -791,9 +791,11 @@ namespace MediaBrowser.Controller.Entities
private QueryResult<BaseItem> PostFilterAndSort(IEnumerable<BaseItem> items,
BaseItem queryParent,
int? totalRecordLimit,
- InternalItemsQuery query)
+ InternalItemsQuery query,
+ bool collapseBoxSetItems,
+ bool enableSorting)
{
- return PostFilterAndSort(items, queryParent, totalRecordLimit, query, _libraryManager, _config);
+ return PostFilterAndSort(items, queryParent, totalRecordLimit, query, _libraryManager, _config, collapseBoxSetItems, enableSorting);
}
public static QueryResult<BaseItem> PostFilterAndSort(IEnumerable<BaseItem> items,
@@ -801,7 +803,9 @@ namespace MediaBrowser.Controller.Entities
int? totalRecordLimit,
InternalItemsQuery query,
ILibraryManager libraryManager,
- IServerConfigurationManager configurationManager)
+ IServerConfigurationManager configurationManager,
+ bool collapseBoxSetItems,
+ bool enableSorting)
{
var user = query.User;
@@ -810,7 +814,10 @@ namespace MediaBrowser.Controller.Entities
query.IsVirtualUnaired,
query.IsUnaired);
- items = CollapseBoxSetItemsIfNeeded(items, query, queryParent, user, configurationManager);
+ if (collapseBoxSetItems)
+ {
+ items = CollapseBoxSetItemsIfNeeded(items, query, queryParent, user, configurationManager);
+ }
// This must be the last filter
if (!string.IsNullOrEmpty(query.AdjacentTo))
@@ -818,7 +825,7 @@ namespace MediaBrowser.Controller.Entities
items = FilterForAdjacency(items, query.AdjacentTo);
}
- return Sort(items, totalRecordLimit, query, libraryManager);
+ return SortAndPage(items, totalRecordLimit, query, libraryManager, enableSorting);
}
public static IEnumerable<BaseItem> CollapseBoxSetItemsIfNeeded(IEnumerable<BaseItem> items,
@@ -1191,10 +1198,10 @@ namespace MediaBrowser.Controller.Entities
return items;
}
- public static QueryResult<BaseItem> Sort(IEnumerable<BaseItem> items,
+ public static QueryResult<BaseItem> SortAndPage(IEnumerable<BaseItem> items,
int? totalRecordLimit,
InternalItemsQuery query,
- ILibraryManager libraryManager)
+ ILibraryManager libraryManager, bool enableSorting)
{
var user = query.User;