Skip to content

Commit 02a37e0

Browse files
Refine broadcasts defaults and preview color behavior
Co-authored-by: frasermolyneux <34033625+frasermolyneux@users.noreply.github.com>
1 parent 7a854a7 commit 02a37e0

4 files changed

Lines changed: 15 additions & 12 deletions

File tree

src/XtremeIdiots.Portal.Web/Controllers/GameServersController.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,7 @@ private void PopulateConfigFromNamespace(GameServerEditViewModel editModel, Conf
628628
break;
629629
case "broadcasts":
630630
editModel.BroadcastsEnabled = GetBoolProperty(root, "enabled", false);
631-
editModel.BroadcastsIntervalSeconds = GetNullableIntProperty(root, "intervalSeconds") ?? 500;
631+
editModel.BroadcastsIntervalSeconds = GetNullableIntProperty(root, "intervalSeconds") ?? GameServerEditViewModel.DefaultBroadcastIntervalSeconds;
632632
editModel.BroadcastMessages = GetBroadcastMessages(root);
633633
break;
634634
default:
@@ -923,9 +923,9 @@ await UpsertConfigSafeAsync(gameServerId, "events",
923923
// Save Broadcasts config (only when Agent is enabled)
924924
if (model.GameServer.AgentEnabled)
925925
{
926-
var broadcastsIntervalSeconds = model.BroadcastsIntervalSeconds.GetValueOrDefault(500);
926+
var broadcastsIntervalSeconds = model.BroadcastsIntervalSeconds.GetValueOrDefault(GameServerEditViewModel.DefaultBroadcastIntervalSeconds);
927927
if (broadcastsIntervalSeconds <= 0)
928-
broadcastsIntervalSeconds = 500;
928+
broadcastsIntervalSeconds = GameServerEditViewModel.DefaultBroadcastIntervalSeconds;
929929

930930
var broadcastsConfig = new
931931
{

src/XtremeIdiots.Portal.Web/ViewModels/GameServerEditViewModel.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ namespace XtremeIdiots.Portal.Web.ViewModels;
88
/// </summary>
99
public class GameServerEditViewModel : IValidatableObject
1010
{
11+
public const int DefaultBroadcastIntervalSeconds = 500;
12+
public const int MaxBroadcastMessageLength = 120;
13+
1114
/// <summary>
1215
/// Core game server data
1316
/// </summary>
@@ -94,7 +97,7 @@ public class GameServerEditViewModel : IValidatableObject
9497

9598
[DisplayName("Interval (seconds)")]
9699
[Range(1, 86400, ErrorMessage = "Broadcast interval must be between 1 and 86400 seconds.")]
97-
public int? BroadcastsIntervalSeconds { get; set; } = 500;
100+
public int? BroadcastsIntervalSeconds { get; set; } = DefaultBroadcastIntervalSeconds;
98101

99102
public List<BroadcastMessageViewModel> BroadcastMessages { get; set; } = [];
100103

@@ -117,8 +120,8 @@ public IEnumerable<ValidationResult> Validate(ValidationContext validationContex
117120
{
118121
for (var i = 0; i < BroadcastMessages.Count; i++)
119122
{
120-
if (BroadcastMessages[i].Message?.Length > 120)
121-
yield return new ValidationResult("Broadcast message cannot exceed 120 characters.", [$"BroadcastMessages[{i}].Message"]);
123+
if (BroadcastMessages[i].Message?.Length > MaxBroadcastMessageLength)
124+
yield return new ValidationResult($"Broadcast message cannot exceed {MaxBroadcastMessageLength} characters.", [$"BroadcastMessages[{i}].Message"]);
122125
}
123126
}
124127
}

src/XtremeIdiots.Portal.Web/Views/GameServers/ConfigurationSections/_BroadcastsConfiguration.cshtml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<label asp-for="BroadcastsIntervalSeconds" class="form-label"></label>
2020
<input asp-for="BroadcastsIntervalSeconds" class="form-control" type="number" min="1" max="86400" />
2121
<span asp-validation-for="BroadcastsIntervalSeconds" class="text-danger"></span>
22-
<small class="form-text text-muted">Interval between broadcasts in seconds. Defaults to 500 when unset.</small>
22+
<small class="form-text text-muted">Interval between broadcasts in seconds. Default: @GameServerEditViewModel.DefaultBroadcastIntervalSeconds seconds.</small>
2323
</div>
2424
</div>
2525
</div>
@@ -65,8 +65,8 @@
6565
</button>
6666
</div>
6767
</div>
68-
<input class="form-control" data-field="message" asp-for="BroadcastMessages[i].Message" maxlength="120" />
69-
<small class="form-text text-muted"><span data-field="char-count">0</span>/120 characters</small>
68+
<input class="form-control" data-field="message" asp-for="BroadcastMessages[i].Message" maxlength="@GameServerEditViewModel.MaxBroadcastMessageLength" />
69+
<small class="form-text text-muted"><span data-field="char-count">0</span>/@GameServerEditViewModel.MaxBroadcastMessageLength characters</small>
7070
<div class="small text-muted mt-1" data-field="preview">(preview)</div>
7171
<span class="text-danger" data-field="validation" asp-validation-for="BroadcastMessages[i].Message"></span>
7272
</div>
@@ -95,8 +95,8 @@
9595
</button>
9696
</div>
9797
</div>
98-
<input class="form-control" data-field="message" maxlength="120" />
99-
<small class="form-text text-muted"><span data-field="char-count">0</span>/120 characters</small>
98+
<input class="form-control" data-field="message" maxlength="@GameServerEditViewModel.MaxBroadcastMessageLength" />
99+
<small class="form-text text-muted"><span data-field="char-count">0</span>/@GameServerEditViewModel.MaxBroadcastMessageLength characters</small>
100100
<div class="small text-muted mt-1" data-field="preview">(preview)</div>
101101
<span class="text-danger" data-field="validation"></span>
102102
</div>

src/XtremeIdiots.Portal.Web/Views/GameServers/Edit.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@
297297
'0': '#ffffff'
298298
};
299299
300-
var currentColor = colors['7'];
300+
var currentColor = colors['0'];
301301
var lastIndex = 0;
302302
var regex = /\^([0-9])/g;
303303
var match;

0 commit comments

Comments
 (0)