diff --git a/Management.Web/Pages/_Host.cshtml b/Management.Web/Pages/_Host.cshtml index 069fdcd..feb574b 100644 --- a/Management.Web/Pages/_Host.cshtml +++ b/Management.Web/Pages/_Host.cshtml @@ -14,6 +14,8 @@ + + diff --git a/Management.Web/Shared/Course/CourseSettings.razor b/Management.Web/Shared/Course/CourseSettings.razor index 132af06..9c4fc23 100644 --- a/Management.Web/Shared/Course/CourseSettings.razor +++ b/Management.Web/Shared/Course/CourseSettings.razor @@ -39,15 +39,18 @@ get => terms?.FirstOrDefault(t => t.Id == selectedTermId); } private bool loading = false; - protected override async Task OnInitializedAsync() + protected override async Task OnAfterRenderAsync(bool firstRender) { - if(planner.LocalCourse != null && planner.LocalCourse.CanvasId != null) + if (firstRender) { - loading = true; - ulong id = planner.LocalCourse?.CanvasId ?? throw new Exception("wtf how did i get here"); - var canvasCourse = await canvas.GetCourse(id); - terms = await canvas.GetCurrentTermsFor(canvasCourse.StartAt); - loading = false; + if(planner.LocalCourse != null && planner.LocalCourse.CanvasId != null) + { + loading = true; + ulong id = planner.LocalCourse?.CanvasId ?? throw new Exception("wtf how did i get here"); + var canvasCourse = await canvas.GetCourse(id); + terms = await canvas.GetCurrentTermsFor(canvasCourse.StartAt); + loading = false; + } } } } diff --git a/Management.Web/Shared/InitializeYamlFromCanvas.razor b/Management.Web/Shared/InitializeYamlFromCanvas.razor index 4bc31e4..73a16e3 100644 --- a/Management.Web/Shared/InitializeYamlFromCanvas.razor +++ b/Management.Web/Shared/InitializeYamlFromCanvas.razor @@ -1,4 +1,5 @@ @using CanvasModel.EnrollmentTerms +@using Management.Web.Shared.Components @using Management.Web.Shared.Semester @using CanvasModel.Courses @using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage diff --git a/Management.Web/Shared/Module/Assignment/AssignmentDetails.razor b/Management.Web/Shared/Module/Assignment/AssignmentDetails.razor index 6431868..7d3e247 100644 --- a/Management.Web/Shared/Module/Assignment/AssignmentDetails.razor +++ b/Management.Web/Shared/Module/Assignment/AssignmentDetails.razor @@ -1,4 +1,5 @@ @using Management.Web.Shared.Components +@using Management.Web.Shared.Module.Assignment.AssignmentForm @inject AssignmentDragContainer dragContainer @inject CoursePlanner planner diff --git a/Management.Web/Shared/Module/Assignment/AssignmentForm/AssignmentDescriptionEditor.razor b/Management.Web/Shared/Module/Assignment/AssignmentForm/AssignmentDescriptionEditor.razor new file mode 100644 index 0000000..1ca5b44 --- /dev/null +++ b/Management.Web/Shared/Module/Assignment/AssignmentForm/AssignmentDescriptionEditor.razor @@ -0,0 +1,105 @@ + +@inject CoursePlanner planner + +@code +{ + [Parameter] + public string Description { get; set; } = default!; + [Parameter] + public bool UseTemplate { get; set; } + [Parameter] + public string? TemplateId { get; set; } + + [Parameter] + public EventCallback DescriptionChanged { get; set; } + + [Parameter] + public EventCallback UseTemplateChanged { get; set; } + + [Parameter] + public EventCallback TemplateIdChanged { get; set; } + + private string selectedTemplateId { get; set; } + private AssignmentTemplate? selectedTemplate => + planner + .LocalCourse? + .AssignmentTemplates + .FirstOrDefault(t => t.Id == selectedTemplateId); + +} + + +
+ + +
+ +@if(UseTemplate) +{ + @if(planner.LocalCourse != null) + { +
+
+
+ + +
+
+
+ VARIABLES: + @if(selectedTemplate != null) + { + var variables = AssignmentTemplate.GetVariables(selectedTemplate.Markdown); + @foreach(var variable in variables) + { +
+ + +
+ } + } +
+
+ } +} +else +{ + +