]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Disable AHelp buttons when no player is selected, update button styling (#20568)
authorDrSmugleaf <DrSmugleaf@users.noreply.github.com>
Thu, 28 Sep 2023 23:46:49 +0000 (16:46 -0700)
committerGitHub <noreply@github.com>
Thu, 28 Sep 2023 23:46:49 +0000 (16:46 -0700)
Content.Client/Administration/UI/Bwoink/BwoinkControl.xaml
Content.Client/Administration/UI/Bwoink/BwoinkControl.xaml.cs
Content.Client/Administration/UI/Bwoink/BwoinkWindow.xaml.cs

index 05c68615ebbbc1dc4a38fa80048e50f6f70c5958..28b55f987f3b8040572bb33da9abd5fe77033a76 100644 (file)
@@ -6,14 +6,15 @@
             <cc:PlayerListControl Access="Public" Name="ChannelSelector" HorizontalExpand="True" SizeFlagsStretchRatio="1" />
             <BoxContainer Orientation="Vertical" HorizontalExpand="True" SizeFlagsStretchRatio="2">
                 <BoxContainer Access="Public" Name="BwoinkArea" VerticalExpand="True" />
-                <BoxContainer Orientation="Horizontal" HorizontalAlignment="Right">
-                    <Button Margin="0 0 10 0" Visible="True" Name="PopOut" Access="Public" Text="{Loc 'admin-logs-pop-out'}"/>
-                    <Button Visible="False" Name="Bans" Text="{Loc 'admin-player-actions-bans'}" />
-                    <Button Visible="False" Name="Notes" Text="{Loc 'admin-player-actions-notes'}" />
-                    <Button Visible="False" Name="Kick" Text="{Loc 'admin-player-actions-kick'}" />
-                    <Button Visible="False" Name="Ban" Text="{Loc 'admin-player-actions-ban'}" />
-                    <Button Visible="False" Name="Respawn" Text="{Loc 'admin-player-actions-respawn'}" />
-                    <Button Visible="False" Name="Teleport" Text="{Loc 'admin-player-actions-teleport'}" />
+                <BoxContainer Orientation="Horizontal" HorizontalExpand="True">
+                    <Button Visible="True" Name="PopOut" Access="Public" Text="{Loc 'admin-logs-pop-out'}" StyleClasses="OpenBoth" HorizontalAlignment="Left" />
+                    <Control HorizontalExpand="True" />
+                    <Button Visible="False" Name="Bans" Text="{Loc 'admin-player-actions-bans'}" StyleClasses="OpenRight" />
+                    <Button Visible="False" Name="Notes" Text="{Loc 'admin-player-actions-notes'}" StyleClasses="OpenBoth" />
+                    <Button Visible="False" Name="Kick" Text="{Loc 'admin-player-actions-kick'}" StyleClasses="OpenBoth" />
+                    <Button Visible="False" Name="Ban" Text="{Loc 'admin-player-actions-ban'}" StyleClasses="OpenBoth" />
+                    <Button Visible="False" Name="Respawn" Text="{Loc 'admin-player-actions-respawn'}" StyleClasses="OpenBoth" />
+                    <Button Visible="False" Name="Teleport" Text="{Loc 'admin-player-actions-teleport'}" StyleClasses="OpenLeft" />
                 </BoxContainer>
             </BoxContainer>
         </SplitContainer>
index 6d8bb7810644eb393dd8119497edba7b229aa8bb..bcac6c00d529ad711533ba215fe239287e7d82bc 100644 (file)
@@ -39,17 +39,13 @@ namespace Content.Client.Administration.UI.Bwoink
 
             AHelpHelper = helper;
 
-            _adminManager.AdminStatusUpdated += FixButtons;
-            FixButtons();
+            _adminManager.AdminStatusUpdated += UpdateButtons;
+            UpdateButtons();
 
             ChannelSelector.OnSelectionChanged += sel =>
             {
                 _currentPlayer = sel;
-                if (sel is not null)
-                {
-                    SwitchToChannel(sel.SessionId);
-                }
-
+                SwitchToChannel(sel?.SessionId);
                 ChannelSelector.PlayerListContainer.DirtyList();
             };
 
@@ -182,25 +178,27 @@ namespace Content.Client.Administration.UI.Bwoink
             ChannelSelector.PlayerListContainer.Select(data);
         }
 
-        private void FixButtons()
+        public void UpdateButtons()
         {
+            var disabled = _currentPlayer == null;
+
             Bans.Visible = _adminManager.HasFlag(AdminFlags.Ban);
-            Bans.Disabled = !Bans.Visible;
+            Bans.Disabled = !Bans.Visible || disabled;
 
             Notes.Visible = _adminManager.HasFlag(AdminFlags.ViewNotes);
-            Notes.Disabled = !Notes.Visible;
+            Notes.Disabled = !Notes.Visible || disabled;
 
             Ban.Visible = _adminManager.HasFlag(AdminFlags.Ban);
-            Ban.Disabled = !Ban.Visible;
+            Ban.Disabled = !Ban.Visible || disabled;
 
             Kick.Visible = _adminManager.CanCommand("kick");
-            Kick.Disabled = !Kick.Visible;
-
-            Teleport.Visible = _adminManager.CanCommand("tpto");
-            Teleport.Disabled = !Teleport.Visible;
+            Kick.Disabled = !Kick.Visible || disabled;
 
             Respawn.Visible = _adminManager.CanCommand("respawn");
-            Respawn.Disabled = !Respawn.Visible;
+            Respawn.Disabled = !Respawn.Visible || disabled;
+
+            Teleport.Visible = _adminManager.CanCommand("tpto");
+            Teleport.Disabled = !Teleport.Visible || disabled;
         }
 
         private string FormatTabTitle(ItemList.Item li, PlayerInfo? pl = default)
@@ -231,12 +229,21 @@ namespace Content.Client.Administration.UI.Bwoink
             return sb.ToString();
         }
 
-        private void SwitchToChannel(NetUserId ch)
+        private void SwitchToChannel(NetUserId? ch)
         {
-            foreach (var bw in BwoinkArea.Children)
-                bw.Visible = false;
-            var panel = AHelpHelper.EnsurePanel(ch);
-            panel.Visible = true;
+            UpdateButtons();
+
+            if (ch != null)
+            {
+                var panel = AHelpHelper.EnsurePanel(ch.Value);
+                panel.Visible = true;
+            }
+        }
+
+        public void PopulateList()
+        {
+            ChannelSelector.PopulateList();
+            UpdateButtons();
         }
     }
 }
index 58217052b411bf4f194e336920fff676523f2138..984d8c5b1a8d1106db656ddbb7f6ad0ce3fe949b 100644 (file)
@@ -1,20 +1,6 @@
-using System.Text;
-using System.Threading;
-using Content.Client.Administration.Managers;
-using Content.Client.Administration.UI.CustomControls;
-using Content.Client.Administration.UI.Tabs.AdminTab;
-using Content.Client.Stylesheets;
-using Content.Client.UserInterface.Systems.Bwoink;
-using Content.Shared.Administration;
 using Robust.Client.AutoGenerated;
-using Robust.Client.Console;
-using Robust.Client.UserInterface;
-using Robust.Client.UserInterface.Controls;
 using Robust.Client.UserInterface.CustomControls;
 using Robust.Client.UserInterface.XAML;
-using Robust.Shared.Network;
-using Robust.Shared.Utility;
-using Timer = Robust.Shared.Timing.Timer;
 
 namespace Content.Client.Administration.UI.Bwoink
 {
@@ -36,7 +22,7 @@ namespace Content.Client.Administration.UI.Bwoink
                 }
             };
 
-            OnOpen += () => Bwoink.ChannelSelector.PopulateList();
+            OnOpen += () => Bwoink.PopulateList();
         }
     }
 }