diff options
| author | Cody Robibero <cody@robibe.ro> | 2025-12-08 21:01:32 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-08 21:01:32 -0700 |
| commit | 0b3d6676d1dc78f38cd17c04ecafe2196a291199 (patch) | |
| tree | 347ebcd63761b28a648b402b5fc4bdc91bb23865 /Jellyfin.Data | |
| parent | c3a8734adf00c85ff7676d2a7caad1f5aa8cd01a (diff) | |
Add ability to sort and filter activity log entries (#15583)
Diffstat (limited to 'Jellyfin.Data')
| -rw-r--r-- | Jellyfin.Data/Enums/ActivityLogSortBy.cs | 49 | ||||
| -rw-r--r-- | Jellyfin.Data/Queries/ActivityLogQuery.cs | 69 |
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; } } |
