From 579913b617c9b7deb3e58ed00bc229906d8dd826 Mon Sep 17 00:00:00 2001 From: Riggle <27156122+RigglePrime@users.noreply.github.com> Date: Fri, 21 Jul 2023 13:38:52 +0200 Subject: [PATCH] Better notes and bans (#14228) Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com> --- .../UI/AdminRemarks/AdminMessageEui.cs | 38 + .../AdminRemarks/AdminMessagePopupWindow.xaml | 26 + .../AdminMessagePopupWindow.xaml.cs | 75 + .../UI/AdminRemarks/AdminRemarksWindow.xaml | 17 + .../AdminRemarks/AdminRemarksWindow.xaml.cs | 49 + .../UI/AdminRemarks/UserNotesEui.cs | 34 + .../Administration/UI/BanPanel/BanPanel.xaml | 49 + .../UI/BanPanel/BanPanel.xaml.cs | 459 +++++ .../Administration/UI/BanPanel/BanPanelEui.cs | 48 + .../UI/Bwoink/BwoinkControl.xaml.cs | 8 +- .../UI/Notes/AdminNotesControl.xaml | 6 +- .../UI/Notes/AdminNotesControl.xaml.cs | 147 +- .../Administration/UI/Notes/AdminNotesEui.cs | 16 +- .../UI/Notes/AdminNotesLine.xaml | 22 +- .../UI/Notes/AdminNotesLine.xaml.cs | 197 +- .../UI/Notes/AdminNotesLinePopup.xaml | 9 +- .../UI/Notes/AdminNotesLinePopup.xaml.cs | 60 +- .../UI/Notes/AdminNotesWindow.xaml | 10 +- .../UI/Notes/AdminNotesWindow.xaml.cs | 6 +- .../Administration/UI/Notes/NoteEdit.xaml | 22 + .../Administration/UI/Notes/NoteEdit.xaml.cs | 242 +++ .../UI/Tabs/AdminTab/AdminTab.xaml | 4 +- .../UI/Tabs/AdminTab/BanWindow.xaml | 29 - .../UI/Tabs/AdminTab/BanWindow.xaml.cs | 84 - Content.Client/Info/RulesPopup.xaml.cs | 2 +- ...03001749_AdminNotesImprovement.Designer.cs | 1770 +++++++++++++++++ .../20230503001749_AdminNotesImprovement.cs | 714 +++++++ .../PostgresServerDbContextModelSnapshot.cs | 456 ++++- ...03001739_AdminNotesImprovement.Designer.cs | 1698 ++++++++++++++++ .../20230503001739_AdminNotesImprovement.cs | 713 +++++++ .../SqliteServerDbContextModelSnapshot.cs | 452 ++++- Content.Server.Database/Model.cs | 291 ++- Content.Server/Administration/BanPanelEui.cs | 169 ++ .../Administration/Commands/BanCommand.cs | 239 ++- .../Commands/BanPanelCommand.cs | 52 + .../Commands/DepartmentBanCommand.cs | 53 +- .../Commands/OpenUserVisibleNotesCommand.cs | 38 + .../Administration/Commands/RoleBanCommand.cs | 53 +- .../Administration/Managers/BanManager.cs | 259 +++ .../Administration/Managers/IBanManager.cs | 50 + .../Administration/Managers/RoleBanManager.cs | 206 -- .../Administration/Notes/AdminMessageEui.cs | 63 + .../Administration/Notes/AdminNotesEui.cs | 106 +- .../Notes/AdminNotesExtensions.cs | 66 +- .../Administration/Notes/AdminNotesManager.cs | 284 ++- .../Administration/Notes/AdminNotesSystem.cs | 56 +- .../Notes/IAdminNotesManager.cs | 37 +- .../Administration/Notes/UserNotesEui.cs | 49 + Content.Server/Content.Server.csproj | 3 +- Content.Server/Database/ServerBanDef.cs | 19 +- Content.Server/Database/ServerBanNote.cs | 14 + Content.Server/Database/ServerDbBase.cs | 386 +++- Content.Server/Database/ServerDbManager.cs | 194 +- Content.Server/Database/ServerDbPostgres.cs | 26 +- Content.Server/Database/ServerDbSqlite.cs | 78 +- Content.Server/Database/ServerRoleBanDef.cs | 12 +- Content.Server/Database/ServerRoleBanNote.cs | 14 + Content.Server/Entry/EntryPoint.cs | 2 +- .../GameTicking/GameTicker.RoundFlow.cs | 4 +- .../GameTicking/GameTicker.Spawning.cs | 4 +- Content.Server/GameTicking/GameTicker.cs | 2 +- Content.Server/IoC/ServerContentIoC.cs | 2 +- .../Systems/StationJobsSystem.Roundstart.cs | 4 +- Content.Shared.Database/NoteSeverity.cs | 28 + Content.Shared.Database/NoteType.cs | 38 + .../Administration/BanPanelEuiState.cs | 61 + .../Notes/AdminMessageEuiState.cs | 39 + .../Notes/AdminNotesEuiState.cs | 31 +- .../Administration/Notes/SharedAdminNote.cs | 24 +- .../Administration/Notes/UserNotesEuiState.cs | 15 + Content.Shared/CCVar/CCVars.cs | 45 +- .../ConfigPresets/Build/development.toml | 3 + .../en-US/administration/ui/admin-notes.ftl | 65 +- .../tabs/admin-tab/player-actions-window.ftl | 2 +- Resources/Locale/en-US/info/ban.ftl | 43 +- .../Locale/en-US/job/role-ban-command.ftl | 2 + .../Interface/AdminNotes/attributions.yml | 9 + .../Interface/AdminNotes/high_button.png | Bin 0 -> 434 bytes .../Interface/AdminNotes/medium_button.png | Bin 0 -> 434 bytes .../Textures/Interface/AdminNotes/message.png | Bin 0 -> 790 bytes .../Interface/AdminNotes/minor_button.png | Bin 0 -> 389 bytes .../Interface/AdminNotes/none_button.png | Bin 0 -> 491 bytes .../Interface/AdminNotes/watchlist.png | Bin 0 -> 835 bytes Tools/erase_user_data.py | 4 +- 84 files changed, 9820 insertions(+), 886 deletions(-) create mode 100644 Content.Client/Administration/UI/AdminRemarks/AdminMessageEui.cs create mode 100644 Content.Client/Administration/UI/AdminRemarks/AdminMessagePopupWindow.xaml create mode 100644 Content.Client/Administration/UI/AdminRemarks/AdminMessagePopupWindow.xaml.cs create mode 100644 Content.Client/Administration/UI/AdminRemarks/AdminRemarksWindow.xaml create mode 100644 Content.Client/Administration/UI/AdminRemarks/AdminRemarksWindow.xaml.cs create mode 100644 Content.Client/Administration/UI/AdminRemarks/UserNotesEui.cs create mode 100644 Content.Client/Administration/UI/BanPanel/BanPanel.xaml create mode 100644 Content.Client/Administration/UI/BanPanel/BanPanel.xaml.cs create mode 100644 Content.Client/Administration/UI/BanPanel/BanPanelEui.cs create mode 100644 Content.Client/Administration/UI/Notes/NoteEdit.xaml create mode 100644 Content.Client/Administration/UI/Notes/NoteEdit.xaml.cs delete mode 100644 Content.Client/Administration/UI/Tabs/AdminTab/BanWindow.xaml delete mode 100644 Content.Client/Administration/UI/Tabs/AdminTab/BanWindow.xaml.cs create mode 100644 Content.Server.Database/Migrations/Postgres/20230503001749_AdminNotesImprovement.Designer.cs create mode 100644 Content.Server.Database/Migrations/Postgres/20230503001749_AdminNotesImprovement.cs create mode 100644 Content.Server.Database/Migrations/Sqlite/20230503001739_AdminNotesImprovement.Designer.cs create mode 100644 Content.Server.Database/Migrations/Sqlite/20230503001739_AdminNotesImprovement.cs create mode 100644 Content.Server/Administration/BanPanelEui.cs create mode 100644 Content.Server/Administration/Commands/BanPanelCommand.cs create mode 100644 Content.Server/Administration/Commands/OpenUserVisibleNotesCommand.cs create mode 100644 Content.Server/Administration/Managers/BanManager.cs create mode 100644 Content.Server/Administration/Managers/IBanManager.cs delete mode 100644 Content.Server/Administration/Managers/RoleBanManager.cs create mode 100644 Content.Server/Administration/Notes/AdminMessageEui.cs create mode 100644 Content.Server/Administration/Notes/UserNotesEui.cs create mode 100644 Content.Server/Database/ServerBanNote.cs create mode 100644 Content.Server/Database/ServerRoleBanNote.cs create mode 100644 Content.Shared.Database/NoteSeverity.cs create mode 100644 Content.Shared.Database/NoteType.cs create mode 100644 Content.Shared/Administration/BanPanelEuiState.cs create mode 100644 Content.Shared/Administration/Notes/AdminMessageEuiState.cs create mode 100644 Content.Shared/Administration/Notes/UserNotesEuiState.cs create mode 100644 Resources/Textures/Interface/AdminNotes/attributions.yml create mode 100644 Resources/Textures/Interface/AdminNotes/high_button.png create mode 100644 Resources/Textures/Interface/AdminNotes/medium_button.png create mode 100644 Resources/Textures/Interface/AdminNotes/message.png create mode 100644 Resources/Textures/Interface/AdminNotes/minor_button.png create mode 100644 Resources/Textures/Interface/AdminNotes/none_button.png create mode 100644 Resources/Textures/Interface/AdminNotes/watchlist.png diff --git a/Content.Client/Administration/UI/AdminRemarks/AdminMessageEui.cs b/Content.Client/Administration/UI/AdminRemarks/AdminMessageEui.cs new file mode 100644 index 0000000000..06eace118d --- /dev/null +++ b/Content.Client/Administration/UI/AdminRemarks/AdminMessageEui.cs @@ -0,0 +1,38 @@ +using Content.Client.Eui; +using Content.Shared.Administration.Notes; +using Content.Shared.Eui; +using JetBrains.Annotations; +using static Content.Shared.Administration.Notes.AdminMessageEuiMsg; + +namespace Content.Client.Administration.UI.AdminRemarks; + +[UsedImplicitly] +public sealed class AdminMessageEui : BaseEui +{ + private readonly AdminMessagePopupWindow _popup; + + public AdminMessageEui() + { + _popup = new AdminMessagePopupWindow(); + _popup.OnAcceptPressed += () => SendMessage(new Accept()); + _popup.OnDismissPressed += () => SendMessage(new Dismiss()); + _popup.OnClose += () => SendMessage(new CloseEuiMessage()); + } + + public override void HandleState(EuiStateBase state) + { + if (state is not AdminMessageEuiState s) + { + return; + } + + _popup.SetMessage(s.Message); + _popup.SetDetails(s.AdminName, s.AddedOn); + _popup.Timer = s.Time; + } + + public override void Opened() + { + _popup.OpenCentered(); + } +} diff --git a/Content.Client/Administration/UI/AdminRemarks/AdminMessagePopupWindow.xaml b/Content.Client/Administration/UI/AdminRemarks/AdminMessagePopupWindow.xaml new file mode 100644 index 0000000000..eac7e37a86 --- /dev/null +++ b/Content.Client/Administration/UI/AdminRemarks/AdminMessagePopupWindow.xaml @@ -0,0 +1,26 @@ + + + + + + + +