From 4a113fc8ca36a891c670ee26c68dac2bb108cc0b Mon Sep 17 00:00:00 2001 From: Alex Mickelson Date: Thu, 9 Nov 2023 15:15:22 -0700 Subject: [PATCH] use monaco editor for quizzes --- Management.Web/Pages/_Host.cshtml | 20 ++++++-- .../AssignmentForm/AssignmentForm.razor | 4 +- .../Shared/Components/MonacoTextArea.razor | 46 +++++++++++++++++++ .../Quiz/Markdown/MarkdownQuizForm.razor | 8 +++- .../Shared/Module/ModuleDetail.razor | 2 +- .../Shared/Module/NewAssignment.razor | 2 +- Management.Web/Shared/Module/NewModule.razor | 4 +- .../Shared/Module/RenameModule.razor | 19 ++++---- Management/Models/Local/LocalAssignment.cs | 4 +- Management/Models/Local/LocalModules.cs | 2 - Management/Models/Local/LocalQuiz.cs | 2 +- 11 files changed, 87 insertions(+), 26 deletions(-) create mode 100644 Management.Web/Shared/Components/MonacoTextArea.razor diff --git a/Management.Web/Pages/_Host.cshtml b/Management.Web/Pages/_Host.cshtml index 55de31e..3b5bc76 100644 --- a/Management.Web/Pages/_Host.cshtml +++ b/Management.Web/Pages/_Host.cshtml @@ -5,20 +5,31 @@ + - - + + - - + + + + + + + @@ -38,4 +49,5 @@ + diff --git a/Management.Web/Shared/Components/AssignmentForm/AssignmentForm.razor b/Management.Web/Shared/Components/AssignmentForm/AssignmentForm.razor index b2dfeb1..8a7c37f 100644 --- a/Management.Web/Shared/Components/AssignmentForm/AssignmentForm.razor +++ b/Management.Web/Shared/Components/AssignmentForm/AssignmentForm.razor @@ -124,7 +124,7 @@ var newAssignment = assignmentContext.Assignment with { - LocalAssignmentGroupId = group?.Id + LocalAssignmentGroupName = group?.Name }; assignmentContext.SaveAssignment(newAssignment); @@ -135,7 +135,7 @@ .LocalCourse? .Settings .AssignmentGroups - .FirstOrDefault(g => g.Id == assignmentContext.Assignment?.LocalAssignmentGroupId); + .FirstOrDefault(g => g.Name == assignmentContext.Assignment?.LocalAssignmentGroupName); private async Task addToCanvas() { diff --git a/Management.Web/Shared/Components/MonacoTextArea.razor b/Management.Web/Shared/Components/MonacoTextArea.razor new file mode 100644 index 0000000..fc19347 --- /dev/null +++ b/Management.Web/Shared/Components/MonacoTextArea.razor @@ -0,0 +1,46 @@ + +@using BlazorMonaco +@using BlazorMonaco.Editor + +@code { + [Parameter, EditorRequired] + public string Value { get; set; } + + [Parameter, EditorRequired] + public Action OnChange { get; set; } + + + private StandaloneCodeEditor _editor = null!; + + private StandaloneEditorConstructionOptions EditorConstructionOptions(StandaloneCodeEditor editor) + { + return new StandaloneEditorConstructionOptions + { + Language = "markdown", + Theme = "vs-dark", + TabSize = 2, + Value = Value, + Minimap = new EditorMinimapOptions { Enabled = false }, + LineNumbers = "off", + LineDecorationsWidth = 0, + WordWrap = "on", + AutomaticLayout = true, + FontFamily = "DM Mono, monospace", + FontSize = 16, + + }; + } + + private async Task OnDidChangeModelContent() + { + var newValue = await _editor.GetValue(); + OnChange(newValue); + } +} + + \ No newline at end of file diff --git a/Management.Web/Shared/Components/Quiz/Markdown/MarkdownQuizForm.razor b/Management.Web/Shared/Components/Quiz/Markdown/MarkdownQuizForm.razor index 47d3840..1e2d120 100644 --- a/Management.Web/Shared/Components/Quiz/Markdown/MarkdownQuizForm.razor +++ b/Management.Web/Shared/Components/Quiz/Markdown/MarkdownQuizForm.razor @@ -15,6 +15,7 @@ get => _quizMarkdownInput; set { + Console.WriteLine("setting"); _quizMarkdownInput = value; try @@ -102,11 +103,16 @@ short answer"; }
-