Skip to content

Commit 5ae40ea

Browse files
feat: Normalize funny message enabled values in GlobalSettingsController and update form submission logic in Index view
1 parent d3206af commit 5ae40ea

2 files changed

Lines changed: 21 additions & 1 deletion

File tree

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ public async Task<IActionResult> Index(GlobalSettingsViewModel model, Cancellati
6666
{
6767
return await ExecuteWithErrorHandlingAsync(async () =>
6868
{
69+
NormalizeFunnyMessageEnabledValuesFromForm(model);
70+
6971
var modelStateResult = CheckModelState(model);
7072
if (modelStateResult is not null)
7173
return modelStateResult;
@@ -268,4 +270,22 @@ private async Task UpsertConfigSafeAsync(
268270
errors.Add(ns);
269271
}
270272
}
273+
274+
private void NormalizeFunnyMessageEnabledValuesFromForm(GlobalSettingsViewModel model)
275+
{
276+
if (model.FunnyMessages is null || model.FunnyMessages.Count == 0)
277+
return;
278+
279+
for (var i = 0; i < model.FunnyMessages.Count; i++)
280+
{
281+
if (!Request.Form.TryGetValue($"FunnyMessages[{i}].Enabled", out var values))
282+
{
283+
model.FunnyMessages[i].Enabled = false;
284+
continue;
285+
}
286+
287+
model.FunnyMessages[i].Enabled = values.Any(value =>
288+
bool.TryParse(value, out var parsed) && parsed);
289+
}
290+
}
271291
}

src/XtremeIdiots.Portal.Web/Views/GlobalSettings/Index.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,7 @@
476476
reindexGlobalFunnyRows(container);
477477
updateGlobalFunnyEmptyState(container);
478478
479-
var form = document.querySelector('form[action*="Index"]');
479+
var form = container.closest('form') || document.querySelector('form[method="post"]');
480480
if (form) {
481481
form.addEventListener('submit', function () {
482482
reindexGlobalFunnyRows(container);

0 commit comments

Comments
 (0)