Сообщения в ПДА 2 (#583)

* add: AdminLog

* tweak: clean up

* fix: Changeling -> Network

* add: сортировка сообщений

* fix: ТексТ
This commit is contained in:
Spatison
2024-08-08 13:20:06 +03:00
committed by GitHub
parent abf435b11d
commit cced3cc98b
19 changed files with 195 additions and 136 deletions

View File

@@ -23,6 +23,7 @@ using Content.Shared._White;
using Content.Shared._White.Cult.Components;
using Content.Shared._White.Utils;
using Content.Shared._White.Cult.Systems;
using Content.Shared._White.Radio;
using Robust.Client.Graphics;
using Robust.Client.Input;
using Robust.Client.Player;
@@ -575,6 +576,12 @@ public sealed class ChatUIController : UIController
FilterableChannels |= ChatChannel.Changeling;
CanSendChannels |= ChatSelectChannel.Changeling;
}
if (_entities.HasComponent<NetworkChatComponent>(localEnt))
{
FilterableChannels |= ChatChannel.Network;
CanSendChannels |= ChatSelectChannel.Network;
}
// WD EDIT END
SelectableChannels = CanSendChannels;

View File

@@ -24,8 +24,11 @@ public sealed partial class ChannelFilterPopup : Popup
ChatChannel.AdminAlert,
ChatChannel.AdminChat,
ChatChannel.Server,
// WD EDIT START
ChatChannel.Changeling,
ChatChannel.Cult // WD EDIT
ChatChannel.Cult,
ChatChannel.Network
// WD EDIT END
};
private readonly Dictionary<ChatChannel, ChannelFilterCheckbox> _filterStates = new();

View File

@@ -26,7 +26,7 @@ public sealed partial class MessagesUi : UIFragment
if (state is not MessagesUiState messagesState)
return;
_fragment.UpdateState(messagesState.Mode, messagesState.Contents, messagesState.Name);
_fragment.UpdateState(messagesState.Mode, messagesState.Users, messagesState.Messages, messagesState.Name);
}
private void SendMessagesMessage(MessagesUiAction action, string? stringInput, int? uidInput, BoundUserInterface userInterface)

View File

@@ -29,10 +29,10 @@ public sealed partial class MessagesUiFragment : BoxContainer
BackButton.OnPressed += _ => OnButtonPressed?.Invoke(null);
SearchBar.OnTextChanged += OnSearchTextChanged;
UpdateState(MessagesUiStateMode.UserList, [], null);
UpdateState(MessagesUiStateMode.UserList, [], [], null);
}
public void UpdateState(MessagesUiStateMode mode, List<(MessagesUser, int?)>? contents, string? name)
public void UpdateState(MessagesUiStateMode mode, List<(MessagesUserData, int?)>? users, List<(string, int?)>? messages, string? name)
{
MessageContainer.DisposeAllChildren();
Input.Orphan();
@@ -40,16 +40,13 @@ public sealed partial class MessagesUiFragment : BoxContainer
SearchBar.Visible = false;
if (contents == null)
return;
if (mode == MessagesUiStateMode.Chat)
if (mode == MessagesUiStateMode.Chat && messages != null)
{
HeaderLabel.Text = name;
foreach (var (senderName, message) in contents)
foreach (var (senderName, message) in messages)
{
AddNote($"{senderName.Name} {message}");
AddNote($"{senderName} {message}");
}
OverContainer.AddChild(Input);
@@ -61,11 +58,11 @@ public sealed partial class MessagesUiFragment : BoxContainer
HeaderLabel.Text = Loc.GetString("messages-pda-error-header");
AddNote(Loc.GetString("messages-pda-error-message"));
}
else
else if (mode == MessagesUiStateMode.UserList && users != null)
{
SearchBar.Visible = true;
HeaderLabel.Text = Loc.GetString("messages-pda-chat-choice");
foreach (var (messagesUser, userUid) in contents)
foreach (var (messagesUser, userUid) in users)
{
AddButton(userUid, messagesUser.Name + ", " + messagesUser.Job, messagesUser.Department);
}
@@ -123,7 +120,6 @@ public sealed partial class MessagesUiFragment : BoxContainer
_searchText = args.Text;
UpdateVisibleButtons();
// Reset scroll bar so they can see the relevant results.
MessagesScroll.SetScrollValue(Vector2.Zero);
}
}