From 8c3ab09f3822b9925a61f23adf1308e136de3e7f Mon Sep 17 00:00:00 2001 From: Alex Mickelson Date: Mon, 21 Aug 2023 12:37:23 -0600 Subject: [PATCH] fixed templates overriding valid descriptions --- .../AssignmentDescriptionEditor.razor | 27 +++++++++++++++++-- .../Configuration/AssignmentEditorContext.cs | 1 + 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/Management.Web/Shared/Components/AssignmentForm/AssignmentDescriptionEditor.razor b/Management.Web/Shared/Components/AssignmentForm/AssignmentDescriptionEditor.razor index c2f3787..e473db2 100644 --- a/Management.Web/Shared/Components/AssignmentForm/AssignmentDescriptionEditor.razor +++ b/Management.Web/Shared/Components/AssignmentForm/AssignmentDescriptionEditor.razor @@ -22,8 +22,8 @@ } if(TemplateId == string.Empty || TemplateId == null) { - TemplateId = assignmentContext.Assignment.TemplateId; UseTemplate = TemplateId != null && TemplateId != ""; + TemplateId = assignmentContext.Assignment.TemplateId; VariableValues = assignmentContext.Assignment.TemplateVariables; this.InvokeAsync(this.StateHasChanged); } @@ -80,6 +80,28 @@ private MarkupString preview { get => (MarkupString)Markdown.ToHtml(descriptionForPreview); } + private void handleTemplateChange(ChangeEventArgs e) + { + if (assignmentContext.Assignment != null) + { + Console.WriteLine("input"); + var newValue = bool.Parse(e.Value?.ToString() ?? "false"); + UseTemplate = newValue; + StateHasChanged(); + if(!newValue) + { + TemplateId = string.Empty; + VariableValues = new Dictionary(); + assignmentContext.SaveAssignment( + assignmentContext.Assignment with + { + TemplateId = TemplateId, + TemplateVariables = VariableValues + } + ); + } + } + } } @if(assignmentContext.Assignment != null && planner.LocalCourse != null) @@ -90,7 +112,8 @@ type="checkbox" role="switch" id="useTemplateForDescription" - @bind="UseTemplate" + checked="@UseTemplate" + @oninput="handleTemplateChange" />