Add non-players button to log viewer (#14097)
* add include non-players button to log viewer * breakout player filter check * fix sending player logs with no players selected * fix default not returning player logs, causing test issue
This commit is contained in:
@@ -122,14 +122,25 @@ public sealed partial class AdminLogManager
|
||||
query = query.Where(log => log.Date > filter.After);
|
||||
}
|
||||
|
||||
if (filter.AnyPlayers != null)
|
||||
if (filter.IncludePlayers)
|
||||
{
|
||||
query = query.Where(log => filter.AnyPlayers.Any(filterPlayer => log.Players.Contains(filterPlayer)));
|
||||
}
|
||||
if (filter.AnyPlayers != null)
|
||||
{
|
||||
query = query.Where(log =>
|
||||
filter.AnyPlayers.Any(filterPlayer => log.Players.Contains(filterPlayer)) ||
|
||||
log.Players.Length == 0 && filter.IncludeNonPlayers);
|
||||
}
|
||||
|
||||
if (filter.AllPlayers != null)
|
||||
if (filter.AllPlayers != null)
|
||||
{
|
||||
query = query.Where(log =>
|
||||
filter.AllPlayers.All(filterPlayer => log.Players.Contains(filterPlayer)) ||
|
||||
log.Players.Length == 0 && filter.IncludeNonPlayers);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
query = query.Where(log => filter.AllPlayers.All(filterPlayer => log.Players.Contains(filterPlayer)));
|
||||
query = query.Where(log => log.Players.Length == 0);
|
||||
}
|
||||
|
||||
if (filter.LogsSent != 0)
|
||||
|
||||
@@ -119,8 +119,10 @@ public sealed class AdminLogsEui : BaseEui
|
||||
Impacts = request.Impacts,
|
||||
Before = request.Before,
|
||||
After = request.After,
|
||||
IncludePlayers = request.IncludePlayers,
|
||||
AnyPlayers = request.AnyPlayers,
|
||||
AllPlayers = request.AllPlayers,
|
||||
IncludeNonPlayers = request.IncludeNonPlayers,
|
||||
LastLogId = 0,
|
||||
Limit = _clientBatchSize
|
||||
};
|
||||
|
||||
@@ -20,10 +20,14 @@ public sealed class LogFilter
|
||||
|
||||
public DateTime? After { get; set; }
|
||||
|
||||
public bool IncludePlayers { get; set; } = true;
|
||||
|
||||
public Guid[]? AnyPlayers { get; set; }
|
||||
|
||||
public Guid[]? AllPlayers { get; set; }
|
||||
|
||||
public bool IncludeNonPlayers { get; set; }
|
||||
|
||||
public int? LastLogId { get; set; }
|
||||
|
||||
public int LogsSent { get; set; }
|
||||
|
||||
@@ -740,14 +740,25 @@ namespace Content.Server.Database
|
||||
query = query.Where(log => log.Date > filter.After);
|
||||
}
|
||||
|
||||
if (filter.AnyPlayers != null)
|
||||
if (filter.IncludePlayers)
|
||||
{
|
||||
query = query.Where(log => log.Players.Any(p => filter.AnyPlayers.Contains(p.PlayerUserId)));
|
||||
}
|
||||
if (filter.AnyPlayers != null)
|
||||
{
|
||||
query = query.Where(log =>
|
||||
log.Players.Any(p => filter.AnyPlayers.Contains(p.PlayerUserId)) ||
|
||||
log.Players.Count == 0 && filter.IncludeNonPlayers);
|
||||
}
|
||||
|
||||
if (filter.AllPlayers != null)
|
||||
if (filter.AllPlayers != null)
|
||||
{
|
||||
query = query.Where(log =>
|
||||
log.Players.All(p => filter.AllPlayers.Contains(p.PlayerUserId)) ||
|
||||
log.Players.Count == 0 && filter.IncludeNonPlayers);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
query = query.Where(log => log.Players.All(p => filter.AllPlayers.Contains(p.PlayerUserId)));
|
||||
query = query.Where(log => log.Players.Count == 0);
|
||||
}
|
||||
|
||||
if (filter.LastLogId != null)
|
||||
|
||||
Reference in New Issue
Block a user