add entity logs verb (#14170)
This commit is contained in:
@@ -174,6 +174,32 @@ public sealed partial class AdminLogsControl : Control
|
|||||||
UpdateLogs();
|
UpdateLogs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetTypesSelection(HashSet<LogType> selectedTypes, bool invert = false)
|
||||||
|
{
|
||||||
|
SelectedTypes.Clear();
|
||||||
|
|
||||||
|
foreach (var control in TypesContainer.Children)
|
||||||
|
{
|
||||||
|
if (control is not AdminLogTypeButton type)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (selectedTypes.Contains(type.Type) ^ invert)
|
||||||
|
{
|
||||||
|
type.Pressed = true;
|
||||||
|
SelectedTypes.Add(type.Type);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
type.Pressed = false;
|
||||||
|
type.Visible = ShouldShowType(type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateLogs();
|
||||||
|
}
|
||||||
|
|
||||||
public void UpdateTypes()
|
public void UpdateTypes()
|
||||||
{
|
{
|
||||||
foreach (var control in TypesContainer.Children)
|
foreach (var control in TypesContainer.Children)
|
||||||
|
|||||||
@@ -137,6 +137,15 @@ public sealed class AdminLogsEui : BaseEui
|
|||||||
|
|
||||||
LogsControl.NextButton.Disabled = !newLogs.HasNext;
|
LogsControl.NextButton.Disabled = !newLogs.HasNext;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case SetLogFilter setLogFilter:
|
||||||
|
if (setLogFilter.Search != null)
|
||||||
|
LogsControl.LogSearch.SetText(setLogFilter.Search);
|
||||||
|
|
||||||
|
if (setLogFilter.Types != null)
|
||||||
|
LogsControl.SetTypesSelection(setLogFilter.Types, setLogFilter.InvertTypes);
|
||||||
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ using Content.Server.GameTicking;
|
|||||||
using Content.Shared.Administration;
|
using Content.Shared.Administration;
|
||||||
using Content.Shared.Administration.Logs;
|
using Content.Shared.Administration.Logs;
|
||||||
using Content.Shared.CCVar;
|
using Content.Shared.CCVar;
|
||||||
|
using Content.Shared.Database;
|
||||||
using Content.Shared.Eui;
|
using Content.Shared.Eui;
|
||||||
using Microsoft.Extensions.ObjectPool;
|
using Microsoft.Extensions.ObjectPool;
|
||||||
using Robust.Shared.Configuration;
|
using Robust.Shared.Configuration;
|
||||||
@@ -140,6 +141,16 @@ public sealed class AdminLogsEui : BaseEui
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetLogFilter(string? search = null, bool invertTypes = false, HashSet<LogType>? types = null)
|
||||||
|
{
|
||||||
|
var message = new SetLogFilter(
|
||||||
|
search,
|
||||||
|
invertTypes,
|
||||||
|
types);
|
||||||
|
|
||||||
|
SendMessage(message);
|
||||||
|
}
|
||||||
|
|
||||||
private async void SendLogs(bool replace)
|
private async void SendLogs(bool replace)
|
||||||
{
|
{
|
||||||
var stopwatch = new Stopwatch();
|
var stopwatch = new Stopwatch();
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Content.Server.Administration.Commands;
|
using Content.Server.Administration.Commands;
|
||||||
|
using Content.Server.Administration.Logs;
|
||||||
using Content.Server.Administration.Managers;
|
using Content.Server.Administration.Managers;
|
||||||
using Content.Server.Administration.UI;
|
using Content.Server.Administration.UI;
|
||||||
using Content.Server.Chemistry.Components.SolutionManager;
|
using Content.Server.Chemistry.Components.SolutionManager;
|
||||||
@@ -48,6 +49,7 @@ namespace Content.Server.Administration.Systems
|
|||||||
[Dependency] private readonly ArtifactSystem _artifactSystem = default!;
|
[Dependency] private readonly ArtifactSystem _artifactSystem = default!;
|
||||||
[Dependency] private readonly UserInterfaceSystem _uiSystem = default!;
|
[Dependency] private readonly UserInterfaceSystem _uiSystem = default!;
|
||||||
[Dependency] private readonly PrayerSystem _prayerSystem = default!;
|
[Dependency] private readonly PrayerSystem _prayerSystem = default!;
|
||||||
|
[Dependency] private readonly EuiManager _eui = default!;
|
||||||
|
|
||||||
private readonly Dictionary<IPlayerSession, EditSolutionsEui> _openSolutionUis = new();
|
private readonly Dictionary<IPlayerSession, EditSolutionsEui> _openSolutionUis = new();
|
||||||
|
|
||||||
@@ -119,6 +121,25 @@ namespace Content.Server.Administration.Systems
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Admin Logs
|
||||||
|
if (_adminManager.HasAdminFlag(player, AdminFlags.Logs))
|
||||||
|
{
|
||||||
|
Verb logsVerbEntity = new()
|
||||||
|
{
|
||||||
|
Priority = -2,
|
||||||
|
Text = Loc.GetString("admin-verbs-admin-logs-entity"),
|
||||||
|
Category = VerbCategory.Admin,
|
||||||
|
Act = () =>
|
||||||
|
{
|
||||||
|
var ui = new AdminLogsEui();
|
||||||
|
_eui.OpenEui(ui, player);
|
||||||
|
ui.SetLogFilter(search:args.Target.GetHashCode().ToString());
|
||||||
|
},
|
||||||
|
Impact = LogImpact.Low
|
||||||
|
};
|
||||||
|
args.Verbs.Add(logsVerbEntity);
|
||||||
|
}
|
||||||
|
|
||||||
// TeleportTo
|
// TeleportTo
|
||||||
args.Verbs.Add(new Verb
|
args.Verbs.Add(new Verb
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -27,6 +27,21 @@ public static class AdminLogsEuiMsg
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Serializable, NetSerializable]
|
||||||
|
public sealed class SetLogFilter : EuiMessageBase
|
||||||
|
{
|
||||||
|
public SetLogFilter(string? search = null, bool invertTypes = false, HashSet<LogType>? types = null)
|
||||||
|
{
|
||||||
|
Search = search;
|
||||||
|
InvertTypes = invertTypes;
|
||||||
|
Types = types;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string? Search { get; set; }
|
||||||
|
public bool InvertTypes { get; set; }
|
||||||
|
public HashSet<LogType>? Types { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
[Serializable, NetSerializable]
|
[Serializable, NetSerializable]
|
||||||
public sealed class NewLogs : EuiMessageBase
|
public sealed class NewLogs : EuiMessageBase
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ delete-verb-get-data-text = Delete
|
|||||||
edit-solutions-verb-get-data-text = Edit Solutions
|
edit-solutions-verb-get-data-text = Edit Solutions
|
||||||
explode-verb-get-data-text = Explode
|
explode-verb-get-data-text = Explode
|
||||||
ahelp-verb-get-data-text = Message
|
ahelp-verb-get-data-text = Message
|
||||||
|
admin-verbs-admin-logs-entity = Entity Logs
|
||||||
admin-verbs-teleport-to = Teleport To
|
admin-verbs-teleport-to = Teleport To
|
||||||
admin-verbs-teleport-here = Teleport Here
|
admin-verbs-teleport-here = Teleport Here
|
||||||
admin-verbs-freeze = Freeze
|
admin-verbs-freeze = Freeze
|
||||||
|
|||||||
Reference in New Issue
Block a user