Admin Options tab (#35543)

* admin options tab initial

* make admin tab only visible to admins
This commit is contained in:
Errant
2025-02-26 23:32:42 +01:00
committed by GitHub
parent 8f164cffe4
commit c698b163b6
5 changed files with 47 additions and 2 deletions

View File

@@ -8,5 +8,6 @@
<tabs:KeyRebindTab Name="KeyRebindTab" /> <tabs:KeyRebindTab Name="KeyRebindTab" />
<tabs:AudioTab Name="AudioTab" /> <tabs:AudioTab Name="AudioTab" />
<tabs:AccessibilityTab Name="AccessibilityTab" /> <tabs:AccessibilityTab Name="AccessibilityTab" />
<tabs:AdminOptionsTab Name="AdminOptionsTab" />
</TabContainer> </TabContainer>
</DefaultWindow> </DefaultWindow>

View File

@@ -1,4 +1,4 @@
using Content.Client.Options.UI.Tabs; using Content.Client.Administration.Managers;
using Robust.Client.AutoGenerated; using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.CustomControls; using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML; using Robust.Client.UserInterface.XAML;
@@ -8,6 +8,8 @@ namespace Content.Client.Options.UI
[GenerateTypedNameReferences] [GenerateTypedNameReferences]
public sealed partial class OptionsMenu : DefaultWindow public sealed partial class OptionsMenu : DefaultWindow
{ {
[Dependency] private readonly IClientAdminManager _adminManager = default!;
public OptionsMenu() public OptionsMenu()
{ {
RobustXamlLoader.Load(this); RobustXamlLoader.Load(this);
@@ -18,16 +20,21 @@ namespace Content.Client.Options.UI
Tabs.SetTabTitle(2, Loc.GetString("ui-options-tab-controls")); Tabs.SetTabTitle(2, Loc.GetString("ui-options-tab-controls"));
Tabs.SetTabTitle(3, Loc.GetString("ui-options-tab-audio")); Tabs.SetTabTitle(3, Loc.GetString("ui-options-tab-audio"));
Tabs.SetTabTitle(4, Loc.GetString("ui-options-tab-accessibility")); Tabs.SetTabTitle(4, Loc.GetString("ui-options-tab-accessibility"));
Tabs.SetTabTitle(5, Loc.GetString("ui-options-tab-admin"));
UpdateTabs(); UpdateTabs();
} }
public void UpdateTabs() public void UpdateTabs()
{ {
var isAdmin = _adminManager.IsAdmin(true);
Tabs.SetTabVisible(5, isAdmin);
GraphicsTab.Control.ReloadValues(); GraphicsTab.Control.ReloadValues();
MiscTab.Control.ReloadValues(); MiscTab.Control.ReloadValues();
AccessibilityTab.Control.ReloadValues(); AccessibilityTab.Control.ReloadValues();
AudioTab.Control.ReloadValues(); AudioTab.Control.ReloadValues();
AdminOptionsTab.Control.ReloadValues();
} }
} }
} }

View File

@@ -0,0 +1,12 @@
<Control xmlns="https://spacestation14.io"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ui="clr-namespace:Content.Client.Options.UI">
<BoxContainer Orientation="Vertical">
<ScrollContainer VerticalExpand="True" HScrollEnabled="False">
<BoxContainer Orientation="Vertical" Margin="8">
<CheckBox Name="EnableClassicOverlayCheckBox" Text="{Loc 'ui-options-enable-classic-overlay'}" />
</BoxContainer>
</ScrollContainer>
<ui:OptionsTabControlRow Name="Control" Access="Public" />
</BoxContainer>
</Control>

View File

@@ -0,0 +1,20 @@
using Content.Shared.CCVar;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.XAML;
namespace Content.Client.Options.UI.Tabs;
[GenerateTypedNameReferences]
public sealed partial class AdminOptionsTab : Control
{
public AdminOptionsTab()
{
RobustXamlLoader.Load(this);
Control.AddOptionCheckBox(CCVars.AdminOverlayClassic, EnableClassicOverlayCheckBox);
Control.Initialize();
}
}

View File

@@ -2,6 +2,7 @@
ui-options-title = Game Options ui-options-title = Game Options
ui-options-tab-accessibility = Accessibility ui-options-tab-accessibility = Accessibility
ui-options-tab-admin = Admin
ui-options-tab-graphics = Graphics ui-options-tab-graphics = Graphics
ui-options-tab-controls = Controls ui-options-tab-controls = Controls
ui-options-tab-audio = Audio ui-options-tab-audio = Audio
@@ -286,3 +287,7 @@ ui-options-chat-window-opacity = Chat window opacity
ui-options-speech-bubble-text-opacity = Speech bubble text opacity ui-options-speech-bubble-text-opacity = Speech bubble text opacity
ui-options-speech-bubble-speaker-opacity = Speech bubble speaker opacity ui-options-speech-bubble-speaker-opacity = Speech bubble speaker opacity
ui-options-speech-bubble-background-opacity = Speech bubble background opacity ui-options-speech-bubble-background-opacity = Speech bubble background opacity
## Admin menu
ui-options-enable-classic-overlay = Revert antag overlay to classic mode