From b03c699381b9150b0a8268c058e5b24f3e9a8570 Mon Sep 17 00:00:00 2001 From: Alex Mickelson Date: Wed, 26 Jul 2023 23:05:47 -0600 Subject: [PATCH] adding template description fields to assignment form --- Management.Web/Pages/_Host.cshtml | 2 + .../Shared/Course/CourseSettings.razor | 17 +-- .../Shared/InitializeYamlFromCanvas.razor | 1 + .../Module/Assignment/AssignmentDetails.razor | 1 + .../AssignmentDescriptionEditor.razor | 105 ++++++++++++++++++ .../{ => AssignmentForm}/AssignmentForm.razor | 24 ++-- .../{ => AssignmentForm}/RubricEditor.razor | 0 .../RubricEditorItem.razor | 0 .../SubmissionTypeSelector.razor | 0 .../AssignmentTemplateManagement.razor | 1 - .../wwwroot/css/bootstrap/bootstrap.min.css | 14 ++- .../css/bootstrap/bootstrap.min.css.map | 1 - Management.Web/wwwroot/css/site.css | 2 +- Management/Models/Local/LocalAssignment.cs | 4 + 14 files changed, 147 insertions(+), 25 deletions(-) create mode 100644 Management.Web/Shared/Module/Assignment/AssignmentForm/AssignmentDescriptionEditor.razor rename Management.Web/Shared/Module/Assignment/{ => AssignmentForm}/AssignmentForm.razor (84%) rename Management.Web/Shared/Module/Assignment/{ => AssignmentForm}/RubricEditor.razor (100%) rename Management.Web/Shared/Module/Assignment/{ => AssignmentForm}/RubricEditorItem.razor (100%) rename Management.Web/Shared/Module/Assignment/{ => AssignmentForm}/SubmissionTypeSelector.razor (100%) delete mode 100644 Management.Web/wwwroot/css/bootstrap/bootstrap.min.css.map 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 +{ + +