PanicBunkerTab.xaml.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using Content.Shared.Administration.Events;
  2. using Robust.Client.AutoGenerated;
  3. using Robust.Client.UserInterface;
  4. using Robust.Client.UserInterface.XAML;
  5. using Robust.Shared.Console;
  6. namespace Content.Client.Administration.UI.Tabs.PanicBunkerTab;
  7. [GenerateTypedNameReferences]
  8. public sealed partial class PanicBunkerTab : Control
  9. {
  10. [Dependency] private readonly IConsoleHost _console = default!;
  11. private string _minAccountAge;
  12. private string _minOverallMinutes;
  13. public PanicBunkerTab()
  14. {
  15. RobustXamlLoader.Load(this);
  16. IoCManager.InjectDependencies(this);
  17. DisableAutomaticallyButton.ToolTip = Loc.GetString("admin-ui-panic-bunker-disable-automatically-tooltip");
  18. MinAccountAge.OnTextEntered += args => SendMinAccountAge(args.Text);
  19. MinAccountAge.OnFocusExit += args => SendMinAccountAge(args.Text);
  20. _minAccountAge = MinAccountAge.Text;
  21. MinOverallMinutes.OnTextEntered += args => SendMinOverallMinutes(args.Text);
  22. MinOverallMinutes.OnFocusExit += args => SendMinOverallMinutes(args.Text);
  23. _minOverallMinutes = MinOverallMinutes.Text;
  24. }
  25. private void SendMinAccountAge(string text)
  26. {
  27. if (string.IsNullOrWhiteSpace(text) ||
  28. text == _minAccountAge ||
  29. !int.TryParse(text, out var minutes))
  30. {
  31. return;
  32. }
  33. _console.ExecuteCommand($"panicbunker_min_account_age {minutes}");
  34. }
  35. private void SendMinOverallMinutes(string text)
  36. {
  37. if (string.IsNullOrWhiteSpace(text) ||
  38. text == _minOverallMinutes ||
  39. !int.TryParse(text, out var minutes))
  40. {
  41. return;
  42. }
  43. _console.ExecuteCommand($"panicbunker_min_overall_minutes {minutes}");
  44. }
  45. public void UpdateStatus(PanicBunkerStatus status)
  46. {
  47. EnabledButton.Pressed = status.Enabled;
  48. EnabledButton.Text = Loc.GetString(status.Enabled
  49. ? "admin-ui-panic-bunker-enabled"
  50. : "admin-ui-panic-bunker-disabled"
  51. );
  52. EnabledButton.ModulateSelfOverride = status.Enabled ? Color.Red : null;
  53. DisableAutomaticallyButton.Pressed = status.DisableWithAdmins;
  54. EnableAutomaticallyButton.Pressed = status.EnableWithoutAdmins;
  55. CountDeadminnedButton.Pressed = status.CountDeadminnedAdmins;
  56. ShowReasonButton.Pressed = status.ShowReason;
  57. MinAccountAge.Text = status.MinAccountAgeMinutes.ToString();
  58. _minAccountAge = MinAccountAge.Text;
  59. MinOverallMinutes.Text = status.MinOverallMinutes.ToString();
  60. _minOverallMinutes = MinOverallMinutes.Text;
  61. }
  62. }