Disable AHelp buttons when no player is selected, update button styling (#20568)
This commit is contained in:
@@ -6,14 +6,15 @@
|
|||||||
<cc:PlayerListControl Access="Public" Name="ChannelSelector" HorizontalExpand="True" SizeFlagsStretchRatio="1" />
|
<cc:PlayerListControl Access="Public" Name="ChannelSelector" HorizontalExpand="True" SizeFlagsStretchRatio="1" />
|
||||||
<BoxContainer Orientation="Vertical" HorizontalExpand="True" SizeFlagsStretchRatio="2">
|
<BoxContainer Orientation="Vertical" HorizontalExpand="True" SizeFlagsStretchRatio="2">
|
||||||
<BoxContainer Access="Public" Name="BwoinkArea" VerticalExpand="True" />
|
<BoxContainer Access="Public" Name="BwoinkArea" VerticalExpand="True" />
|
||||||
<BoxContainer Orientation="Horizontal" HorizontalAlignment="Right">
|
<BoxContainer Orientation="Horizontal" HorizontalExpand="True">
|
||||||
<Button Margin="0 0 10 0" Visible="True" Name="PopOut" Access="Public" Text="{Loc 'admin-logs-pop-out'}"/>
|
<Button Visible="True" Name="PopOut" Access="Public" Text="{Loc 'admin-logs-pop-out'}" StyleClasses="OpenBoth" HorizontalAlignment="Left" />
|
||||||
<Button Visible="False" Name="Bans" Text="{Loc 'admin-player-actions-bans'}" />
|
<Control HorizontalExpand="True" />
|
||||||
<Button Visible="False" Name="Notes" Text="{Loc 'admin-player-actions-notes'}" />
|
<Button Visible="False" Name="Bans" Text="{Loc 'admin-player-actions-bans'}" StyleClasses="OpenRight" />
|
||||||
<Button Visible="False" Name="Kick" Text="{Loc 'admin-player-actions-kick'}" />
|
<Button Visible="False" Name="Notes" Text="{Loc 'admin-player-actions-notes'}" StyleClasses="OpenBoth" />
|
||||||
<Button Visible="False" Name="Ban" Text="{Loc 'admin-player-actions-ban'}" />
|
<Button Visible="False" Name="Kick" Text="{Loc 'admin-player-actions-kick'}" StyleClasses="OpenBoth" />
|
||||||
<Button Visible="False" Name="Respawn" Text="{Loc 'admin-player-actions-respawn'}" />
|
<Button Visible="False" Name="Ban" Text="{Loc 'admin-player-actions-ban'}" StyleClasses="OpenBoth" />
|
||||||
<Button Visible="False" Name="Teleport" Text="{Loc 'admin-player-actions-teleport'}" />
|
<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>
|
||||||
</BoxContainer>
|
</BoxContainer>
|
||||||
</SplitContainer>
|
</SplitContainer>
|
||||||
|
|||||||
@@ -39,17 +39,13 @@ namespace Content.Client.Administration.UI.Bwoink
|
|||||||
|
|
||||||
AHelpHelper = helper;
|
AHelpHelper = helper;
|
||||||
|
|
||||||
_adminManager.AdminStatusUpdated += FixButtons;
|
_adminManager.AdminStatusUpdated += UpdateButtons;
|
||||||
FixButtons();
|
UpdateButtons();
|
||||||
|
|
||||||
ChannelSelector.OnSelectionChanged += sel =>
|
ChannelSelector.OnSelectionChanged += sel =>
|
||||||
{
|
{
|
||||||
_currentPlayer = sel;
|
_currentPlayer = sel;
|
||||||
if (sel is not null)
|
SwitchToChannel(sel?.SessionId);
|
||||||
{
|
|
||||||
SwitchToChannel(sel.SessionId);
|
|
||||||
}
|
|
||||||
|
|
||||||
ChannelSelector.PlayerListContainer.DirtyList();
|
ChannelSelector.PlayerListContainer.DirtyList();
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -182,25 +178,27 @@ namespace Content.Client.Administration.UI.Bwoink
|
|||||||
ChannelSelector.PlayerListContainer.Select(data);
|
ChannelSelector.PlayerListContainer.Select(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FixButtons()
|
public void UpdateButtons()
|
||||||
{
|
{
|
||||||
|
var disabled = _currentPlayer == null;
|
||||||
|
|
||||||
Bans.Visible = _adminManager.HasFlag(AdminFlags.Ban);
|
Bans.Visible = _adminManager.HasFlag(AdminFlags.Ban);
|
||||||
Bans.Disabled = !Bans.Visible;
|
Bans.Disabled = !Bans.Visible || disabled;
|
||||||
|
|
||||||
Notes.Visible = _adminManager.HasFlag(AdminFlags.ViewNotes);
|
Notes.Visible = _adminManager.HasFlag(AdminFlags.ViewNotes);
|
||||||
Notes.Disabled = !Notes.Visible;
|
Notes.Disabled = !Notes.Visible || disabled;
|
||||||
|
|
||||||
Ban.Visible = _adminManager.HasFlag(AdminFlags.Ban);
|
Ban.Visible = _adminManager.HasFlag(AdminFlags.Ban);
|
||||||
Ban.Disabled = !Ban.Visible;
|
Ban.Disabled = !Ban.Visible || disabled;
|
||||||
|
|
||||||
Kick.Visible = _adminManager.CanCommand("kick");
|
Kick.Visible = _adminManager.CanCommand("kick");
|
||||||
Kick.Disabled = !Kick.Visible;
|
Kick.Disabled = !Kick.Visible || disabled;
|
||||||
|
|
||||||
Teleport.Visible = _adminManager.CanCommand("tpto");
|
|
||||||
Teleport.Disabled = !Teleport.Visible;
|
|
||||||
|
|
||||||
Respawn.Visible = _adminManager.CanCommand("respawn");
|
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)
|
private string FormatTabTitle(ItemList.Item li, PlayerInfo? pl = default)
|
||||||
@@ -231,12 +229,21 @@ namespace Content.Client.Administration.UI.Bwoink
|
|||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SwitchToChannel(NetUserId ch)
|
private void SwitchToChannel(NetUserId? ch)
|
||||||
{
|
{
|
||||||
foreach (var bw in BwoinkArea.Children)
|
UpdateButtons();
|
||||||
bw.Visible = false;
|
|
||||||
var panel = AHelpHelper.EnsurePanel(ch);
|
if (ch != null)
|
||||||
panel.Visible = true;
|
{
|
||||||
|
var panel = AHelpHelper.EnsurePanel(ch.Value);
|
||||||
|
panel.Visible = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void PopulateList()
|
||||||
|
{
|
||||||
|
ChannelSelector.PopulateList();
|
||||||
|
UpdateButtons();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.AutoGenerated;
|
||||||
using Robust.Client.Console;
|
|
||||||
using Robust.Client.UserInterface;
|
|
||||||
using Robust.Client.UserInterface.Controls;
|
|
||||||
using Robust.Client.UserInterface.CustomControls;
|
using Robust.Client.UserInterface.CustomControls;
|
||||||
using Robust.Client.UserInterface.XAML;
|
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
|
namespace Content.Client.Administration.UI.Bwoink
|
||||||
{
|
{
|
||||||
@@ -36,7 +22,7 @@ namespace Content.Client.Administration.UI.Bwoink
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
OnOpen += () => Bwoink.ChannelSelector.PopulateList();
|
OnOpen += () => Bwoink.PopulateList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user