fixed templates overriding valid descriptions

This commit is contained in:
2023-08-21 12:37:23 -06:00
parent b657fd06d3
commit 8c3ab09f38
2 changed files with 26 additions and 2 deletions

View File

@@ -22,8 +22,8 @@
} }
if(TemplateId == string.Empty || TemplateId == null) if(TemplateId == string.Empty || TemplateId == null)
{ {
TemplateId = assignmentContext.Assignment.TemplateId;
UseTemplate = TemplateId != null && TemplateId != ""; UseTemplate = TemplateId != null && TemplateId != "";
TemplateId = assignmentContext.Assignment.TemplateId;
VariableValues = assignmentContext.Assignment.TemplateVariables; VariableValues = assignmentContext.Assignment.TemplateVariables;
this.InvokeAsync(this.StateHasChanged); this.InvokeAsync(this.StateHasChanged);
} }
@@ -80,6 +80,28 @@
private MarkupString preview { get => (MarkupString)Markdown.ToHtml(descriptionForPreview); } 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<string, string>();
assignmentContext.SaveAssignment(
assignmentContext.Assignment with
{
TemplateId = TemplateId,
TemplateVariables = VariableValues
}
);
}
}
}
} }
@if(assignmentContext.Assignment != null && planner.LocalCourse != null) @if(assignmentContext.Assignment != null && planner.LocalCourse != null)
@@ -90,7 +112,8 @@
type="checkbox" type="checkbox"
role="switch" role="switch"
id="useTemplateForDescription" id="useTemplateForDescription"
@bind="UseTemplate" checked="@UseTemplate"
@oninput="handleTemplateChange"
/> />
<label class="form-check-label" for="useTemplateForDescription"> <label class="form-check-label" for="useTemplateForDescription">
use template for description use template for description

View File

@@ -17,6 +17,7 @@ public class AssignmentEditorContext
get => _assignment; get => _assignment;
set set
{ {
Console.WriteLine("saving");
_assignment = value; _assignment = value;
StateHasChanged?.Invoke(); StateHasChanged?.Invoke();
} }