aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Data
diff options
context:
space:
mode:
authorCody Robibero <cody@robibe.ro>2025-12-08 21:01:32 -0700
committerGitHub <noreply@github.com>2025-12-08 21:01:32 -0700
commit0b3d6676d1dc78f38cd17c04ecafe2196a291199 (patch)
tree347ebcd63761b28a648b402b5fc4bdc91bb23865 /Jellyfin.Data
parentc3a8734adf00c85ff7676d2a7caad1f5aa8cd01a (diff)
Add ability to sort and filter activity log entries (#15583)
Diffstat (limited to 'Jellyfin.Data')
-rw-r--r--Jellyfin.Data/Enums/ActivityLogSortBy.cs49
-rw-r--r--Jellyfin.Data/Queries/ActivityLogQuery.cs69
2 files changed, 105 insertions, 13 deletions
diff --git a/Jellyfin.Data/Enums/ActivityLogSortBy.cs b/Jellyfin.Data/Enums/ActivityLogSortBy.cs
new file mode 100644
index 000000000..d6d44e8c0
--- /dev/null
+++ b/Jellyfin.Data/Enums/ActivityLogSortBy.cs
@@ -0,0 +1,49 @@
+namespace Jellyfin.Data.Enums;
+
+/// <summary>
+/// Activity log sorting options.
+/// </summary>
+public enum ActivityLogSortBy
+{
+ /// <summary>
+ /// Sort by name.
+ /// </summary>
+ Name = 0,
+
+ /// <summary>
+ /// Sort by overview.
+ /// </summary>
+ Overiew = 1,
+
+ /// <summary>
+ /// Sort by short overview.
+ /// </summary>
+ ShortOverview = 2,
+
+ /// <summary>
+ /// Sort by type.
+ /// </summary>
+ Type = 3,
+
+ /*
+ /// <summary>
+ /// Sort by item name.
+ /// </summary>
+ Item = 4,
+ */
+
+ /// <summary>
+ /// Sort by date.
+ /// </summary>
+ DateCreated = 5,
+
+ /// <summary>
+ /// Sort by username.
+ /// </summary>
+ Username = 6,
+
+ /// <summary>
+ /// Sort by severity.
+ /// </summary>
+ LogSeverity = 7
+}
diff --git a/Jellyfin.Data/Queries/ActivityLogQuery.cs b/Jellyfin.Data/Queries/ActivityLogQuery.cs
index f1af099d3..95c52f870 100644
--- a/Jellyfin.Data/Queries/ActivityLogQuery.cs
+++ b/Jellyfin.Data/Queries/ActivityLogQuery.cs
@@ -1,20 +1,63 @@
using System;
+using System.Collections.Generic;
+using Jellyfin.Data.Enums;
+using Jellyfin.Database.Implementations.Enums;
+using Microsoft.Extensions.Logging;
-namespace Jellyfin.Data.Queries
+namespace Jellyfin.Data.Queries;
+
+/// <summary>
+/// A class representing a query to the activity logs.
+/// </summary>
+public class ActivityLogQuery : PaginatedQuery
{
/// <summary>
- /// A class representing a query to the activity logs.
+ /// Gets or sets a value indicating whether to take entries with a user id.
+ /// </summary>
+ public bool? HasUserId { get; set; }
+
+ /// <summary>
+ /// Gets or sets the minimum date to query for.
+ /// </summary>
+ public DateTime? MinDate { get; set; }
+
+ /// <summary>
+ /// Gets or sets the name filter.
/// </summary>
- public class ActivityLogQuery : PaginatedQuery
- {
- /// <summary>
- /// Gets or sets a value indicating whether to take entries with a user id.
- /// </summary>
- public bool? HasUserId { get; set; }
+ public string? Name { get; set; }
- /// <summary>
- /// Gets or sets the minimum date to query for.
- /// </summary>
- public DateTime? MinDate { get; set; }
- }
+ /// <summary>
+ /// Gets or sets the overview filter.
+ /// </summary>
+ public string? Overview { get; set; }
+
+ /// <summary>
+ /// Gets or sets the short overview filter.
+ /// </summary>
+ public string? ShortOverview { get; set; }
+
+ /// <summary>
+ /// Gets or sets the type filter.
+ /// </summary>
+ public string? Type { get; set; }
+
+ /// <summary>
+ /// Gets or sets the item filter.
+ /// </summary>
+ public Guid? ItemId { get; set; }
+
+ /// <summary>
+ /// Gets or sets the username filter.
+ /// </summary>
+ public string? Username { get; set; }
+
+ /// <summary>
+ /// Gets or sets the log level filter.
+ /// </summary>
+ public LogLevel? Severity { get; set; }
+
+ /// <summary>
+ /// Gets or sets the result ordering.
+ /// </summary>
+ public IReadOnlyCollection<(ActivityLogSortBy, SortOrder)>? OrderBy { get; set; }
}