Require severity to be set when creating and editing notes (#19059)
This commit is contained in:
@@ -3,6 +3,7 @@ using Content.Shared.Administration.Notes;
|
|||||||
using Content.Shared.Database;
|
using Content.Shared.Database;
|
||||||
using Robust.Client.AutoGenerated;
|
using Robust.Client.AutoGenerated;
|
||||||
using Robust.Client.Console;
|
using Robust.Client.Console;
|
||||||
|
using Robust.Client.UserInterface;
|
||||||
using Robust.Client.UserInterface.Controls;
|
using Robust.Client.UserInterface.Controls;
|
||||||
using Robust.Client.UserInterface.XAML;
|
using Robust.Client.UserInterface.XAML;
|
||||||
using Robust.Shared.Timing;
|
using Robust.Shared.Timing;
|
||||||
@@ -24,6 +25,9 @@ public sealed partial class NoteEdit : FancyWindow
|
|||||||
RobustXamlLoader.Load(this);
|
RobustXamlLoader.Load(this);
|
||||||
PlayerName = playerName;
|
PlayerName = playerName;
|
||||||
Title = Loc.GetString("admin-note-editor-title-new", ("player", PlayerName));
|
Title = Loc.GetString("admin-note-editor-title-new", ("player", PlayerName));
|
||||||
|
IsCreating = note is null;
|
||||||
|
CanCreate = canCreate;
|
||||||
|
CanEdit = canEdit;
|
||||||
|
|
||||||
ResetSubmitButton();
|
ResetSubmitButton();
|
||||||
|
|
||||||
@@ -33,6 +37,7 @@ public sealed partial class NoteEdit : FancyWindow
|
|||||||
TypeOption.OnItemSelected += OnTypeChanged;
|
TypeOption.OnItemSelected += OnTypeChanged;
|
||||||
|
|
||||||
|
|
||||||
|
SeverityOption.AddItem(Loc.GetString("admin-note-editor-severity-select"), -1);
|
||||||
SeverityOption.AddItem(Loc.GetString("admin-note-editor-severity-none"), (int) Shared.Database.NoteSeverity.None);
|
SeverityOption.AddItem(Loc.GetString("admin-note-editor-severity-none"), (int) Shared.Database.NoteSeverity.None);
|
||||||
SeverityOption.AddItem(Loc.GetString("admin-note-editor-severity-low"), (int) Shared.Database.NoteSeverity.Minor);
|
SeverityOption.AddItem(Loc.GetString("admin-note-editor-severity-low"), (int) Shared.Database.NoteSeverity.Minor);
|
||||||
SeverityOption.AddItem(Loc.GetString("admin-note-editor-severity-medium"), (int) Shared.Database.NoteSeverity.Medium);
|
SeverityOption.AddItem(Loc.GetString("admin-note-editor-severity-medium"), (int) Shared.Database.NoteSeverity.Medium);
|
||||||
@@ -42,10 +47,11 @@ public sealed partial class NoteEdit : FancyWindow
|
|||||||
PermanentCheckBox.OnPressed += OnPermanentPressed;
|
PermanentCheckBox.OnPressed += OnPermanentPressed;
|
||||||
SecretCheckBox.OnPressed += OnSecretPressed;
|
SecretCheckBox.OnPressed += OnSecretPressed;
|
||||||
SubmitButton.OnPressed += OnSubmitButtonPressed;
|
SubmitButton.OnPressed += OnSubmitButtonPressed;
|
||||||
|
SubmitButton.OnMouseEntered += OnSubmitButtonMouseEntered;
|
||||||
|
SubmitButton.OnMouseExited += OnSubmitButtonMouseExited;
|
||||||
|
|
||||||
if (note is null && !canCreate)
|
if (note is null && !canCreate)
|
||||||
{
|
{
|
||||||
SubmitButton.Disabled = true;
|
|
||||||
TypeOption.Disabled = true;
|
TypeOption.Disabled = true;
|
||||||
SeverityOption.Disabled = true;
|
SeverityOption.Disabled = true;
|
||||||
}
|
}
|
||||||
@@ -77,21 +83,45 @@ public sealed partial class NoteEdit : FancyWindow
|
|||||||
UpdatePermanentCheckboxFields();
|
UpdatePermanentCheckboxFields();
|
||||||
ExpiryLineEdit.Text = ExpiryTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
|
ExpiryLineEdit.Text = ExpiryTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!canEdit)
|
|
||||||
{
|
|
||||||
SubmitButton.Disabled = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UpdateSubmitButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnSubmitButtonMouseEntered(GUIMouseHoverEventArgs args)
|
||||||
|
{
|
||||||
|
if (!SubmitButton.Disabled)
|
||||||
|
return;
|
||||||
|
|
||||||
|
SeverityOption.ModulateSelfOverride = Color.Red;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnSubmitButtonMouseExited(GUIMouseHoverEventArgs args)
|
||||||
|
{
|
||||||
|
SeverityOption.ModulateSelfOverride = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private NoteSeverity? _noteSeverity = null;
|
||||||
|
|
||||||
private string PlayerName { get; }
|
private string PlayerName { get; }
|
||||||
private int NoteId { get; }
|
private int NoteId { get; }
|
||||||
private bool IsSecret { get; set; }
|
private bool IsSecret { get; set; }
|
||||||
private NoteType NoteType { get; set; }
|
private NoteType NoteType { get; set; }
|
||||||
private NoteSeverity? NoteSeverity { get; set; } = Shared.Database.NoteSeverity.None;
|
|
||||||
|
private NoteSeverity? NoteSeverity
|
||||||
|
{
|
||||||
|
get => _noteSeverity;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_noteSeverity = value;
|
||||||
|
UpdateSubmitButton();
|
||||||
|
}
|
||||||
|
}
|
||||||
private DateTime? ExpiryTime { get; set; }
|
private DateTime? ExpiryTime { get; set; }
|
||||||
private TimeSpan? DeleteResetOn { get; set; }
|
private TimeSpan? DeleteResetOn { get; set; }
|
||||||
|
private bool IsCreating { get; set; }
|
||||||
|
private bool CanCreate { get; set; }
|
||||||
|
private bool CanEdit { get; set; }
|
||||||
|
|
||||||
private void OnTypeChanged(OptionButton.ItemSelectedEventArgs args)
|
private void OnTypeChanged(OptionButton.ItemSelectedEventArgs args)
|
||||||
{
|
{
|
||||||
@@ -153,7 +183,7 @@ public sealed partial class NoteEdit : FancyWindow
|
|||||||
|
|
||||||
private void OnSeverityChanged(OptionButton.ItemSelectedEventArgs args)
|
private void OnSeverityChanged(OptionButton.ItemSelectedEventArgs args)
|
||||||
{
|
{
|
||||||
NoteSeverity = (NoteSeverity) args.Id;
|
NoteSeverity = args.Id == -1 ? NoteSeverity = null : (NoteSeverity) args.Id;
|
||||||
SeverityOption.SelectId(args.Id);
|
SeverityOption.SelectId(args.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -192,6 +222,26 @@ public sealed partial class NoteEdit : FancyWindow
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Updates whether or not the submit button is disabled.
|
||||||
|
/// </summary>
|
||||||
|
private void UpdateSubmitButton()
|
||||||
|
{
|
||||||
|
if (!CanEdit)
|
||||||
|
{
|
||||||
|
SubmitButton.Disabled = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (IsCreating && !CanCreate)
|
||||||
|
{
|
||||||
|
SubmitButton.Disabled = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
SubmitButton.Disabled = NoteSeverity == null;
|
||||||
|
}
|
||||||
|
|
||||||
private void ResetSubmitButton()
|
private void ResetSubmitButton()
|
||||||
{
|
{
|
||||||
SubmitButton.Text = Loc.GetString("admin-note-editor-submit");
|
SubmitButton.Text = Loc.GetString("admin-note-editor-submit");
|
||||||
@@ -236,6 +286,8 @@ public sealed partial class NoteEdit : FancyWindow
|
|||||||
PermanentCheckBox.OnPressed -= OnPermanentPressed;
|
PermanentCheckBox.OnPressed -= OnPermanentPressed;
|
||||||
SecretCheckBox.OnPressed -= OnSecretPressed;
|
SecretCheckBox.OnPressed -= OnSecretPressed;
|
||||||
SubmitButton.OnPressed -= OnSubmitButtonPressed;
|
SubmitButton.OnPressed -= OnSubmitButtonPressed;
|
||||||
|
SubmitButton.OnMouseEntered -= OnSubmitButtonMouseEntered;
|
||||||
|
SubmitButton.OnMouseExited -= OnSubmitButtonMouseExited;
|
||||||
|
|
||||||
SubmitPressed = null;
|
SubmitPressed = null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ admin-note-editor-type-message = Message
|
|||||||
admin-note-editor-type-watchlist = Watchlist
|
admin-note-editor-type-watchlist = Watchlist
|
||||||
admin-note-editor-type-server-ban = Server Ban
|
admin-note-editor-type-server-ban = Server Ban
|
||||||
admin-note-editor-type-role-ban = Role Ban
|
admin-note-editor-type-role-ban = Role Ban
|
||||||
|
admin-note-editor-severity-select = Select
|
||||||
admin-note-editor-severity-none = None
|
admin-note-editor-severity-none = None
|
||||||
admin-note-editor-severity-low = Low
|
admin-note-editor-severity-low = Low
|
||||||
admin-note-editor-severity-medium = Medium
|
admin-note-editor-severity-medium = Medium
|
||||||
|
|||||||
Reference in New Issue
Block a user