mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-01-15 16:33:25 -03:00
Fixed Multi Sort in New ActivityManager (#15820)
This commit is contained in:
committed by
GitHub
parent
d446fde009
commit
84f66dd54e
@@ -205,6 +205,7 @@
|
|||||||
- [theshoeshiner](https://github.com/theshoeshiner)
|
- [theshoeshiner](https://github.com/theshoeshiner)
|
||||||
- [TokerX](https://github.com/TokerX)
|
- [TokerX](https://github.com/TokerX)
|
||||||
- [GeneMarks](https://github.com/GeneMarks)
|
- [GeneMarks](https://github.com/GeneMarks)
|
||||||
|
- [bjorntp](https://github.com/bjorntp)
|
||||||
|
|
||||||
# Emby Contributors
|
# Emby Contributors
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ public class ActivityLogController : BaseJellyfinApiController
|
|||||||
/// <param name="startIndex">The record index to start at. All items with a lower index will be dropped from the results.</param>
|
/// <param name="startIndex">The record index to start at. All items with a lower index will be dropped from the results.</param>
|
||||||
/// <param name="limit">The maximum number of records to return.</param>
|
/// <param name="limit">The maximum number of records to return.</param>
|
||||||
/// <param name="minDate">The minimum date.</param>
|
/// <param name="minDate">The minimum date.</param>
|
||||||
|
/// <param name="maxDate">The maximum date.</param>
|
||||||
/// <param name="hasUserId">Filter log entries if it has user id, or not.</param>
|
/// <param name="hasUserId">Filter log entries if it has user id, or not.</param>
|
||||||
/// <param name="name">Filter by name.</param>
|
/// <param name="name">Filter by name.</param>
|
||||||
/// <param name="overview">Filter by overview.</param>
|
/// <param name="overview">Filter by overview.</param>
|
||||||
@@ -56,6 +57,7 @@ public class ActivityLogController : BaseJellyfinApiController
|
|||||||
[FromQuery] int? startIndex,
|
[FromQuery] int? startIndex,
|
||||||
[FromQuery] int? limit,
|
[FromQuery] int? limit,
|
||||||
[FromQuery] DateTime? minDate,
|
[FromQuery] DateTime? minDate,
|
||||||
|
[FromQuery] DateTime? maxDate,
|
||||||
[FromQuery] bool? hasUserId,
|
[FromQuery] bool? hasUserId,
|
||||||
[FromQuery] string? name,
|
[FromQuery] string? name,
|
||||||
[FromQuery] string? overview,
|
[FromQuery] string? overview,
|
||||||
@@ -72,6 +74,7 @@ public class ActivityLogController : BaseJellyfinApiController
|
|||||||
Skip = startIndex,
|
Skip = startIndex,
|
||||||
Limit = limit,
|
Limit = limit,
|
||||||
MinDate = minDate,
|
MinDate = minDate,
|
||||||
|
MaxDate = maxDate,
|
||||||
HasUserId = hasUserId,
|
HasUserId = hasUserId,
|
||||||
Name = name,
|
Name = name,
|
||||||
Overview = overview,
|
Overview = overview,
|
||||||
|
|||||||
@@ -21,6 +21,11 @@ public class ActivityLogQuery : PaginatedQuery
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTime? MinDate { get; set; }
|
public DateTime? MinDate { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the maximum date to query for.
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? MaxDate { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the name filter.
|
/// Gets or sets the name filter.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -72,6 +72,11 @@ public class ActivityManager : IActivityManager
|
|||||||
entries = entries.Where(e => e.ActivityLog.DateCreated >= query.MinDate.Value);
|
entries = entries.Where(e => e.ActivityLog.DateCreated >= query.MinDate.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (query.MaxDate is not null)
|
||||||
|
{
|
||||||
|
entries = entries.Where(e => e.ActivityLog.DateCreated <= query.MaxDate.Value);
|
||||||
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(query.Name))
|
if (!string.IsNullOrEmpty(query.Name))
|
||||||
{
|
{
|
||||||
entries = entries.Where(e => EF.Functions.Like(e.ActivityLog.Name, $"%{query.Name}%"));
|
entries = entries.Where(e => EF.Functions.Like(e.ActivityLog.Name, $"%{query.Name}%"));
|
||||||
@@ -166,9 +171,19 @@ public class ActivityManager : IActivityManager
|
|||||||
foreach (var (sortBy, sortOrder) in sorting)
|
foreach (var (sortBy, sortOrder) in sorting)
|
||||||
{
|
{
|
||||||
var orderBy = MapOrderBy(sortBy);
|
var orderBy = MapOrderBy(sortBy);
|
||||||
|
|
||||||
|
if (ordered == null)
|
||||||
|
{
|
||||||
ordered = sortOrder == SortOrder.Ascending
|
ordered = sortOrder == SortOrder.Ascending
|
||||||
? (ordered ?? query).OrderBy(orderBy)
|
? query.OrderBy(orderBy)
|
||||||
: (ordered ?? query).OrderByDescending(orderBy);
|
: query.OrderByDescending(orderBy);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ordered = sortOrder == SortOrder.Ascending
|
||||||
|
? ordered.ThenBy(orderBy)
|
||||||
|
: ordered.ThenByDescending(orderBy);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ordered;
|
return ordered;
|
||||||
|
|||||||
Reference in New Issue
Block a user