Files
space-station-14/Content.Server/FeedbackSystem/FeedbackCommand.cs
Julian Giebel bcd3612730 Add feedback popups (#41352)
* Commit

* add the form post

* dv

* fixes

* Change wording

* Address review

* wording change

* Added some stuff

* New format

* bruh

* thanks perry!

* yes

* More fixes!

* typo

* Add a command to show the list, improve the UI slightly, split up command names

* Fix UI controller

* Add better comment

* Get rid of weird recursive thing

* Cleanup

* Work on moving feedback popups out of simulation

* Move round end screen subscription to feedback ui controller

* Finish moving feedback popups out of simulation

* Fix _ as parameter

* Clean up FeedbackPopupUIController

* Clean up commands

* Fix prototype yaml

* Fix openfeedbackpopup command description

* Update Resources/Locale/en-US/feedbackpopup/feedbackpopup.ftl

Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>

* Address reviews

* Address reviews

* Fix FeedbackPopupPrototype.cs using empty string instead of string.empty

* Address some more of the reviews, style nano is still trolling sadly

* Fix feedback popup styling

* Fix PopupPrototype ID field not having a setter

* Address reviews

* Add label when no feedback entries are present

Change link button to not show when no link is set

---------

Co-authored-by: beck-thompson <beck314159@hotmail.com>
Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>
2026-01-22 22:19:54 +00:00

64 lines
1.9 KiB
C#

using Content.Server.Administration;
using Content.Shared.Administration;
using Content.Shared.FeedbackSystem;
using Robust.Shared.Player;
using Robust.Shared.Prototypes;
using Robust.Shared.Toolshed;
namespace Content.Server.FeedbackSystem;
/// <summary>
/// Adds, removes, and displays feedback for specified sessions.
/// </summary>
[ToolshedCommand]
[AdminCommand(AdminFlags.Debug)]
public sealed class FeedbackCommand : ToolshedCommand
{
[Dependency] private readonly ISharedFeedbackManager _feedback = null!;
[CommandImplementation("show")]
public void ExecuteShow([CommandArgument] ICommonSession session)
{
_feedback.OpenForSession(session);
}
[CommandImplementation("show")]
public void ExecuteShow([PipedArgument] IEnumerable<ICommonSession> sessions)
{
foreach (var session in sessions)
{
_feedback.OpenForSession(session);
}
}
[CommandImplementation("add")]
public void ExecuteAdd([CommandArgument] ICommonSession session, ProtoId<FeedbackPopupPrototype> protoId)
{
_feedback.SendToSession(session, [protoId]);
}
[CommandImplementation("add")]
public void ExecuteAdd([PipedArgument] IEnumerable<ICommonSession> sessions, ProtoId<FeedbackPopupPrototype> protoId)
{
foreach (var session in sessions)
{
_feedback.SendToSession(session, [protoId]);
}
}
[CommandImplementation("remove")]
public void ExecuteRemove([CommandArgument] ICommonSession session, ProtoId<FeedbackPopupPrototype> protoId)
{
_feedback.SendToSession(session, [protoId], true);
}
[CommandImplementation("remove")]
public void ExecuteRemove([PipedArgument] IEnumerable<ICommonSession> sessions, ProtoId<FeedbackPopupPrototype> protoId)
{
foreach (var session in sessions)
{
_feedback.SendToSession(session, [protoId], true);
}
}
}